我有下面的 json:
{
"data": [
{
"name": "product1",
"details": ["lorem ipsum", [
{
"code": "prd1"
},
{
"code": "prd11"
}]
]
},
{
"name": "product2",
"details": ["lorem ipsum", [
{
"code": "prd2"
},
{
"code": "prd22"
}]
]
}
]
}
我想根据代码检索产品的名称,所以 我写了这个查询
$.data..[?(@.code=="prd1")]
结果:
[
{
"code": "prd1"
}]
预期结果:
[{name: "product1"}]
最佳答案
您应该在树上向上移动,直到到达特定键的值。
首先,我们需要到达第一个命名的祖先,即 details
,然后 - 获取它的第一个父级,包含所需的 name
属性。
这可以使用 ancestor()
函数和 parent()
函数来完成:
$.data..[?(@.code=="prd1")].ansector("details").parent()['name'];
关于javascript - 使用 jsonpath 查询获取父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35430883/