给定这个 json:
{
"things": [
{
"name": "name1"
},
{
"name": "name2"
}
]
}
如何使用 jsonpath 选择值为“name2”的 name 属性节点?我不想指定
things
作为容器,我希望它选择具有匹配值的 name
属性,无论它们在 json 中的位置如何。
$..name[?(@=='name2')]
我不认为这是有效的。
$..*[?(@.name=='name2')]
选择包含对象。
我的答案假设您想要包含值为
name2
的 name 属性的对象。
你已经很接近了。您只需删除
..
和 [<expr>]
之间的位即可。
$..[?(@.name=='name2')]
这将返回对象
{
"name": "name2"
}