如何使用 jsonpath 选择具有给定值的属性

问题描述 投票:0回答:1

给定这个 json:

{
    "things": [
        {
            "name": "name1"
        },
        {
            "name": "name2"
        }
    ]
}

如何使用 jsonpath 选择值为“name2”的 name 属性节点?我不想指定

things
作为容器,我希望它选择具有匹配值的
name
属性,无论它们在 json 中的位置如何。

$..name[?(@=='name2')]
我不认为这是有效的。

$..*[?(@.name=='name2')]
选择包含对象。

jsonpath
1个回答
0
投票

我的答案假设您想要包含值为

name2
的 name 属性的对象。

你已经很接近了。您只需删除

..
[<expr>]
之间的位即可。

$..[?(@.name=='name2')]

这将返回对象

{
  "name": "name2"
}
© www.soinside.com 2019 - 2024. All rights reserved.