JSONPath - 通过名称中包含'@'的字段过滤。

问题描述 投票:1回答:1

我有一个JSON格式的文件。

{
    "media": {
        "@ref": "https://Bull_FTR.mpg",
        "track": [{
            "@type": "General",
            "VideoCount": "1"
        }, {
            "@type": "Video",
            "StreamOrder": "0"
        }, {
            "@type": "Audio",
            "StreamOrder": "1"
        },
        {
            "@type": "Audio",
            "StreamOrder": "2"
        }]
    }
}

我需要查询mwdia. tracks中所有@type = 'Audio'的字段。问题是我想过滤的字段包含'@',而我的查询结果是 $.media.track[?(@.['@type'] == 'Audio')] 不起作用。我做错了什么?

json jsonpath
1个回答
0
投票

简单的方法是用它的十六进制代码代替'@'字符 (\x40)直接放入你的jsonpath查询中。

$.media.track[?(@['\x40type']=="Audio")]
© www.soinside.com 2019 - 2024. All rights reserved.