0

我需要使用 jayway jsonpath 从 json 中获取值。

Json 结构如下所示

[
  {
    "type": "a",
    "values": [
      {
        "name": "a",
        "value": [1,2,3]
      },
      {
        "name": "b",
        "value": [3,4,5]
      },
      {
        "name": "c",
        "value": [6,7,8]
      }
    ]
  }
]

我的要求是在 values 数组中,如果namevalue 是a并且 value 数组包含 value 1,那么我需要获取value数组 where nameis b

我写了如下的 jsonPath 表达式

$..values[?(@.name == 'a')]

它只返回的地方

{
  "name": "a",
  "value": [1,2,3]
}

有人可以帮我写jsonpath表达式吗,在此先感谢。

预期产出

[3,4,5]

试过

$..[?(@.values[?(@.name== 'a' && @.value CONTAINS 1)])]

然后它匹配根数组中存在的每个对象。

4

1 回答 1

1

使用 Jayway JSONPATH,您可能会幸运地使用下面的 jsonpath

$..[?(@.values[?(@.name=='a')].value[*] contains 1 )].values[?(@.name=='b')].value[*]
于 2022-01-03T11:14:55.797 回答