Jsonpath:当兄弟元素是包含特定值的数组时,根据其兄弟元素获取元素的值

Jsonpath: get the value of an element based on its sibling, when the sibiling element is an array containing a specific value

与以下json:

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

当请求 ID A 时,return 值 one 的 json 路径是什么?

根据 我可以检索包含 A:

ids 元素

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

结果:

[
   {
      "id" : "A"
   }
]

但我想访问其同级 ("value": "one") 的值。

提前致谢!

jsonpath:

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

结果:

[
   "one"
]

您也可以使用 in filter operator.

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