如何转义JSON路径中的@符号

How to escape @ symbol in JSON Path

这是我的 JSON 对象,Obj3:

{
    "cars": {
        "Nissan": [
            {"model":"Sentra", "@doors":4},
            {"model":"Maxima", "@doors":4},
            {"model":"Skyline", "@doors":2}
        ],
        "Ford": [
            {"model":"Taurus", "@doors":4},
            {"model":"Escort", "@doors":4}
        ]
    }
}

门前的 @ 符号有问题。如果我没有 @ 符号(即钥匙只是门),我可以使用类似下面的东西作为一种 if 语句:

console.log(JSONPath(JSONPath.toPathString(['$', 'cars', 'Nissan[?(@.doors==4)]']),obj2));

这个returns:

{ model: 'Sentra', doors: 4 }, { model: 'Maxima', doors: 4 } ]

任何人都可以建议我如何更改它以将@doors 视为密钥而不是门吗?

尝试使用 \x40 转义但没有成功

以下 JSON 路径表达式应该可以解决问题:

$.cars.Nissan[?(@['@doors'] == 4)]