Jsonpath - 使用表达式访问数组项

Jsonpath - Accessing array item using expression

我正在使用 AWS Step Functions,它利用 JSONPath 提供 JSON 路径。我有以下输入:

{
    "response": {
      "isSuccess": true,
      "error": "",
      "body": {
        "count": 2,
        "fields": [
          {
            "fieldId": 1,
            "tabId": 100,
            "title": "First Name"
          },
          {
            "fieldId": 2,
            "tabId": 100,
            "title": "Last Name"
          }
        ]
      }
    },
    "iteration": {
      "totalCount": 2,
      "currentCount": 0,
      "step": 1
    }
  }

我想查询字段数组为:

$.response.body.fields[$.iteration.currentCount]

作为迭代的一部分,currentCount 的值递增 1。 尝试使用上述内容时出现无效的 XPath 异常。

有人可以就如何提供动态 属性 值来读取数组值提出建议吗?

https://github.com/json-path/JsonPath#operators 所述,您只能使用数字索引数组。但是,您可以使用过滤器表达式 select 数组中的特定项目,如下所示。

假设您有另一个表示索引的字段,例如:

{
  "index": 0,
  "fieldId": 2,
  "tabId": 100,
  "title": "Last Name"
}

然后你可以做

$.response.body.fields[?(@.index==$.iteration.currentCount)]