javascript - 使用 jsonpath 查询获取父对象

标签 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"}]

最佳答案

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

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

关于javascript - 使用 jsonpath 查询获取父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35430883/

相关文章:

php - 输入框字段值不以json格式显示

PHP:json_encode() 不显示多维数组的任何内容

python - Python 中的正则表达式未捕获所有信息

java - 如何使用正则表达式分割字符串文件名?

javascript - angular $http $watch 文件上传过程中的进度

javascript - React-Native 异步存储

json - 处理非常大的输入文件而无需slurp

php - 在正则表达式 (php) 方面需要一些帮助

javascript FileReader - 分块解析长文件

javascript - ReactJS 状态没有改变