JSONPath—按名称包含'@';

JSONPath—按名称包含'@';,json,jsonpath,Json,Jsonpath,我有一些类似于: { "media": { "@ref": "https://Bull_FTR.mpg", "track": [{ "@type": "General", "VideoCount": "1" }, { "@type": "Video", "StreamOrder": "0" }, { "@t

我有一些类似于:

{
    "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')]
不起作用。我做错了什么?

简单的方法是将“@”字符直接替换为十六进制代码(\x40)到jsonpath查询中:

$.media.track[?(@['\x40type']=="Audio")]