ale*_*nst 10 javascript jsonpath
我有这个测试数据:
[
{
id: 1,
l: 'a',
sub: [
]
},
{
id: 2,
l: 'b',
sub: [
{
id: 4,
l: 'd'
},
{
id: 5,
l: 'e'
},
{
id: 6,
l: 'f',
sub: [
{
id: 7,
l: 'g'
}
]
}
]
},
{
id: 3,
l: 'c',
sub: []
}
];
Run Code Online (Sandbox Code Playgroud)
而我正试图获得对象的路径id: 7.我尝试了一些JSONPath查询,但我似乎无法弄清楚如何使JSONPath迭代所有sub键并在那里搜索.
我该如何匹配对象id: 7?
这是我的测试插件:http://plnkr.co/edit/RoSeRo0L1B2oH3wC5LdU?p =preview
Dun*_*can 20
此查询应该适用于您正在执行的操作:
$..[?(@.id==7)]
Run Code Online (Sandbox Code Playgroud)
你需要在$..你想要选择整个对象之后删除id ,而不仅仅是id.您还错过了查询周围的方括号.
此查询返回以下结果集:
[
{
"id": 7,
"l": "g"
}
]
Run Code Online (Sandbox Code Playgroud)
如果您只想检索l属性的值(因为您已经知道了id),您也可以轻松地执行此操作.只需.l在查询结尾添加:
$..[?(@.id==7)].l
Run Code Online (Sandbox Code Playgroud)
这会返回以下结果集:
[
"g"
]
Run Code Online (Sandbox Code Playgroud)
我使用这个在线json路径测试工具并使用你的plunker在这里测试了第一个查询:http: //www.jsonquerytool.com/sample/jsonpathfilterallbypropertyvalue
| 归档时间: |
|
| 查看次数: |
10285 次 |
| 最近记录: |