使用jsonpath查询获取父对象

时间:2016-02-16 11:06:57

标签: javascript json regex xpath jsonpath

我有以下的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"}]

1 个答案:

答案 0 :(得分:0)

你应该向上移动树,直到达到特定键的值。
首先,我们需要到达第一个命名的祖先,即details,然后 - 获得它的第一个父亲,其中包含所需的name属性。
可以使用ancestor()函数和parent()函数完成此操作:

$.data..[?(@.code=="prd1")].ansector("details").parent()['name'];