列出包含某个属性的所有路径

List all the paths which contains an attribute

我有以下 JSON,其中我想列出存在 path 属性的所有父节点路径。

{
        "ServiceId": {
            "type": "string",
            "admin": "false"
        },
        "NormalizedEvents": {
            "type": "list",
            "path": "/data/../../nEvents"
        },
        "Events": {
            "type" : "list",
            "path": "/data/../../Events"
        }
    }

在这种情况下,我需要像 $.NormalizedEvents$.Events 这样的输出。

使用 JSONPath 选项输出 path instead of value

JSONPath

$.[*][?(@.path)]

输出

[
   "$['NormalizedEvents']",
   "$['Events']"
]

JsonPath expressions can use the dot–notation $.NormalizedEvents

or the bracket–notation $['NormalizedEvents']

在线工具:Jayway JsonPath Evaluator