[英]JSONPath: Get root array object using filter of child value
我试图获取 JSONPath 表达式来过滤我的 JSON 并使用子数组的值获取整个运动 object。
我有以下 JSON:
[{
"name": "Soccer",
"regions": [{
"name": "Australia",
"leagues": [{
"name": "Australia league",
"inplay": 5,
}
]
}
]
}, {
"name": "Tennis",
"regions": [{
"name": "Germany",
"leagues": [{
"name": "Germany league",
"inplay": 0,
}
]
}
]
}
]
我需要使用 JsonPath 表达式获取整个运动 object,其中“inplay == 0”。
结果应该是这样的:
{
"name": "Tennis",
"regions": [{
"name": "Germany",
"leagues": [{
"name": "Germany league",
"inplay": 0,
}
]
}
]
}
地区和联赛计数可以 > 1 因此$[?(@.regions[0].leagues[0].inplay == 0)]
不适合
试过$[?(@.regions[*].leagues[*].inplay == 0)]
但它不起作用
这对我有用
$[?(@.regions[0].leagues[0].inplay == 0)]
由于 JayWay JSONPath 不直接支持(截至目前),我们利用contains
作为解决方法:
$[?(@.regions..inplay contains '0')]
注意:看起来 contains 的工作方式类似于“like”运算符或instr
function,但此处并非如此。 如果inplay
值包含 0,例如10
,则不会提取记录(根据我的测试;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.