嗨,我正在努力寻找 JSONPATH 表达式来获取具有特定键(包括根 JSON 对象)的所有 JSON 对象。 例如:
{
"key1": 1,
"key2": 2,
"key3": {
"key1": 4,
"key4": 5,
"key5": {
"key1": true
}
}
}
应该回来
[
{
"key1": 1,
"key2": 2,
"key3": {
"key1": 4,
"key4": 5,
"key5": {
"key1": true
}
}
},
{
"key1": 4,
"key4": 5,
"key5": {
"key1": true
}
},
{
"key1": true
}
]
我尝试了多种组合,其中最接近的一个是
$..*[?(@.key1)]
,但未能返回根JSON对象。
谢谢你帮助我。
我实际上在我们最终确定规范时提出了这个问题(RFC 9535)。
https://github.com/ietf-wg-jsonpath/draft-ietf-jsonpath-base/issues/390
本质上,递归下降(
..
)只查看后代,而不是根。
那里有一些进一步的讨论,欢迎您添加 2 美分。如果有的话,它可能是 JSON Path v2 的一部分(如果发生这种情况)。