【问题标题】:Jsonpath: get the value of an element based on its sibling, when the sibiling element is an array containing a specific valueJsonpath:根据兄弟元素获取元素的值,当兄弟元素是包含特定值的数组时
【发布时间】:2022-01-02 04:52:37
【问题描述】:

使用以下json:

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

当请求 id A 时返回值 one 的 jsonpath 是什么?

根据https://stackoverflow.com/a/47576707,我可以检索包含 Aids 元素:

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

结果:

[
   {
      "id" : "A"
   }
]

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

提前致谢!

【问题讨论】:

    标签: json jsonpath jayway


    【解决方案1】:

    json路径:

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

    结果:

    [
       "one"
    ]
    

    【讨论】:

      【解决方案2】:

      您也可以使用infilter operator

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-13
        • 1970-01-01
        • 1970-01-01
        • 2016-08-26
        相关资源
        最近更新 更多