我有以下的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"}]
答案 0 :(得分:0)
你应该向上移动树,直到达到特定键的值。
首先,我们需要到达第一个命名的祖先,即details
,然后 - 获得它的第一个父亲,其中包含所需的name
属性。
可以使用ancestor()
函数和parent()
函数完成此操作:
$.data..[?(@.code=="prd1")].ansector("details").parent()['name'];