如何转义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)]
这是我的 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)]