我有如下所示的示例 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/