javascript - 如何在 JSONPATH 中获取父节点

标签 javascript json jsonpath

我有如下所示的示例 json 格式

var myJSON = {
    section: "main",
    title: "xyz",
    child: [{
        title: "Home",
        isEnable: false,
        isActive: true
    }, {
        title: "Contact",
        isEnable: false,
        isActive: true
    }, {
        title: "Menu",
        isEnable: true,
        child: [{
            title: 'Sub-Menu-1',
            isEnable: true
        }, {
            title: 'Sub-Menu-2',
            isEnable: true,
            child: [{
                title: 'Sub-Menu-2-1',
                isEnable: false,
                isActive: true
            }, {
                title: 'Sub-Menu-2-2',
                isEnable: false,
                isActive: true
            }]
        }, {
            title: 'Sub-Menu-3',
            isEnable: true
        }, {
            title: 'Sub-Menu-4',
            isEnable: true
        }]
    }]
};

如果我将标题与其子菜单标题之一匹配,我想获得标题名称为 Sub-Menu-2 的整个对象。 我已按照以下尝试,但没有达到我的预期

var result = jsonPath(myJSON , '$..*[?(@.title == "Sub-Menu-2-1")]');

我的预期输出低于

{
    title: 'Sub-Menu-2',
    isEnable: true
    child: [{
        title: 'Sub-Menu-2-1'
        isEnable: false,
        isActive: true
    }, {
        title: 'Sub-Menu-2-2',
        isEnable: false,
        isActive: true
    }]
}

请帮助我获得预期的输出。提前致谢

最佳答案

对于您预期的输出,您需要更改 JSONPath 表达式。

$..[?(@.title =="Sub-Menu-2")]

这将为您提供输出:

[
    {
        "title": "Sub-Menu-2",
        "isEnable": true,
        "child": [
            {
                "title": "Sub-Menu-2-1",
                "isEnable": false,
                "isActive": true
            },
            {
                "title": "Sub-Menu-2-2",
                "isEnable": false,
                "isActive": true
            }
        ]
    }
]

关于javascript - 如何在 JSONPATH 中获取父节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32202869/

相关文章:

java - 将 JSONPath 过滤器应用于带空格的字段

javascript - document.ready 不工作。没有控制台错误并且包含 jQuery

javascript - JQuery 在 IE 中不返回 div,但在 Firefox/Chrome/Safari 中却返回 div?

arrays - 在 Go 中解码顶级 JSON 数组

java - 放心 jsonpath findAll 没有按预期工作

python - 使用 jsonpath-ng 在 Python 中使用上下文更新 json 数据

javascript - 我可以始终使用++ 或 -- 作为 parseFloat 的简写吗?

javascript - 声明空 JavaScript 变量的最佳实践

java - 使用 Gson 从类对象创建 org.json.JSONObject

java - 使用 ReferenceTypeDeserializer 与 Jackson & Spring 反序列化通用类型