无法让 JSONPath 工作。
JSON:
{
"data": [
{
"meta": {
"definition": {
"title": "ID",
"type": "text",
"key": "657876498"
}
},
"attributes": {
"id": "8606798",
"name": "ID",
"content": {
"value": "ABC"
}
}
}
]
}
路径:
$.data[*].attributes[?(@.name=='ID')]
在jsonpath.com或jsonpath-ng
在 python 中使用时不返回匹配项。
我从根本上错过了什么,这个过滤器不起作用?
注意:最终目标是获取name
和content.value
。
编辑:
在https://jsonpath.herokuapp.com/ 上,路径实际上有效。嗯...实现依赖?
事实上,这似乎是 jsonpath-ng 实现的一个特性。看起来“过滤器操作只能用于列表”,即一个可迭代的。
作为一种解决方法,我们可以过滤data
-array 并在后面拉取attributes
:
$.data[?(@.attributes.name="ID")].attributes
这与使用您的路径的 Jayway 的 JsonPath 给出的结果相同;然而,这种方法可能无法在所有情况下都令人满意。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句