You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Step Functions中DynamoDB BatchGetItem输出的JSONPath过滤问题

在AWS Step Functions中适配DynamoDB BatchGetItem输出的JSONPath写法

核心问题修正

你之前的JSONPath失败主要有两个原因:

  • 字符串比较未加双引号:JSONPath中匹配字符串常量必须用双引号包裹,否则会被当作变量解析
  • 路径未匹配BatchGetItem的标准输出结构:BatchGetItem的结果嵌套在Responses字段下的对应表名节点内的Items数组中,而非直接的Table节点

正确的JSONPath表达式

1. 明确表名的精确路径(推荐,性能更好)

假设你的表名为YourTableName,使用以下表达式:

$.Responses.YourTableName.Items[?(@.name.S == "Param1")].value.S

2. 兼容任意表名的模糊路径

如果不确定表名或需要适配多表场景,用递归匹配:

$..Items[?(@.name.S == "Param1")].value.S

示例验证

假设BatchGetItem的输出结构如下:

{
  "Responses": {
    "UserSettings": {
      "Items": [
        {
          "name": { "S": "Param1" },
          "value": { "S": "30" }
        },
        {
          "name": { "S": "Param2" },
          "value": { "S": "40" }
        }
      ]
    }
  }
}

使用精确路径$.Responses.UserSettings.Items[?(@.name.S == "Param1")].value.S会返回["30"],如果需要直接取单个值,可追加[0]:

$.Responses.UserSettings.Items[?(@.name.S == "Param1")].value.S[0]

内容的提问来源于stack exchange,提问作者Emil Rowland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 00:06:19