获取具有特定键的 JSON 对象,包括根 JSON 对象

问题描述 投票:0回答:1

嗨,我正在努力寻找 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对象。

谢谢你帮助我。

jsonpath json-path-expression
1个回答
0
投票

我实际上在我们最终确定规范时提出了这个问题(RFC 9535)。

https://github.com/ietf-wg-jsonpath/draft-ietf-jsonpath-base/issues/390

本质上,递归下降(

..
)只查看后代,而不是根。

那里有一些进一步的讨论,欢迎您添加 2 美分。如果有的话,它可能是 JSON Path v2 的一部分(如果发生这种情况)。

© www.soinside.com 2019 - 2024. All rights reserved.