如何在JSONPATH中获取父节点

时间:2015-08-25 11:31:33

标签: javascript json jsonpath

我的样本json格式如下

bookingCustomer

如果我将title与其子子菜单标题之一匹配,我想获得标题名为Customer customer= new Customer(); customer.setPersonName(custnameTF.getText); // look at the correct syntax. //set remaining properties to customer objects from text fields // .. //then customerbooking.setCustomer(customer); 的整个对象。 我按照以下方式尝试过但是没有按照我的期望得到

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

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

1 个答案:

答案 0 :(得分:1)

对于预期的输出,您需要更改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
            }
        ]
    }
]