I have sample json format as per below
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
}]
}]
};
I want to get whole object with title name Sub-Menu-2 if I match title with one of its child sub-menu title.
I have tried as per below but I didn't get as per my expectation
var result = jsonPath(myJSON , '$..*[?(@.title == "Sub-Menu-2-1")]');
my expected output is below
{
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
}]
}
Please help me to get expected output .Thanks in advance
For your expected output, you need to change the JSONPath expression.
$..[?(@.title =="Sub-Menu-2")]
This will give you the output:
[
{
"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
}
]
}
]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With