Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jsonpath查询获取父对象_Javascript_Json_Regex_Xpath_Jsonpath - Fatal编程技术网

Javascript 使用jsonpath查询获取父对象

Javascript 使用jsonpath查询获取父对象,javascript,json,regex,xpath,jsonpath,Javascript,Json,Regex,Xpath,Jsonpath,我的json如下所示: { "data": [ { "name": "product1", "details": ["lorem ipsum", [ { "code": "prd1" }, { "code": "prd11" }] ] }, {

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

您应该向上移动树,直到到达特定键的值。
首先,我们需要到达第一个命名的祖先,即
详细信息
,然后-获取其第一个父级,该父级保存所需的
名称
属性。
这可以使用
祖先()
函数和
父级()
函数完成:

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

您应该向上移动树,直到到达特定键的值。
首先,我们需要到达第一个命名的祖先,即
详细信息
,然后-获取其第一个父级,该父级保存所需的
名称
属性。
这可以使用
祖先()
函数和
父级()
函数完成:

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

感谢您的响应,但我正在使用本机jsonpath查询(我认为ansector和parent是JS函数)感谢您的响应,但我正在使用本机jsonpath查询(我认为ansector和parent是JS函数)