[英]json path wildcard with filter
JSON路径语法是否提供一种将过滤器应用于通配符(*)运算符选择的所有对象的方法?
例如,在以下数据中,“ byId”和“列表”包含相同的数据,只是建模不同。
{
"list": [
{"id": "a", "x": 1, "y": 2},
{"id": "b", "x": 1, "y": 3},
{"id": "c", "x": 0, "y": 4}
],
"byId": {
"a": {
"x": 1,
"y": 2
},
"b": {
"x": 1,
"y": 3
},
"c": {
"x": 0,
"y": 4
}
}
}
我们可以通过查询获得“列表”中x大于0的所有点
$.list[?(@.x > 0)]
在“ byId”部分中,我们可以通过查询获取所有点的列表
$.byId.*
但是,有没有一种方法可以使用jsonpath查询语法获取x大于0的“ byId”部分中的所有点?
事实证明,它非常简单,而且不是大多数地方都展示的示例。 对于上述问题,答案仅仅是
$.byId[?(@.x>0)]
显然,不需要通配符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.