1

使用以下json:

{
  "elements": [
    {
      "ids": [
        {
          "id": "A"
        },
        {
          "id": "B"
        }
      ],
      "value": "one"
    },
    {
      "ids": [
        {
          "id": "C"
        },
        {
          "id": "D"
        }
      ],
      "value": "two"
    }
  ]
}

询问 id A时返回值1的 jsonpath 是什么?

根据https://stackoverflow.com/a/47576707我可以检索包含A的ids元素:

$.elements.*.ids[?(@.id=='A')]或者$..ids[?(@.id=='A')]

结果:

[
   {
      "id" : "A"
   }
]

但我想访问其兄弟 ( "value": "one") 的值。

提前致谢!

4

2 回答 2

1

json路径:

$.elements[?(@.ids.*.id contains 'A')].value

结果:

[
   "one"
]
于 2021-11-23T18:02:58.217 回答
1

您还可以使用in 过滤器运算符

$.elements[?('A' in @.ids.*.id)].value
于 2021-11-24T06:19:51.587 回答