将以下字符串传递给 jsonPath 来过滤对象集合时:
$[?(en|**|(@.object.property.one=='other') && (@.object.property.two=='something(abc/def)'))]
我收到以下错误:
jsonPath: Unexpected token ILLEGAL: (_v.object.property.one=='other') && (_v.object.property.two=='something(abc/def))
我最初的猜测是非法字符与圆括号或文字值中存在的正斜杠有关。这可以解释为什么最后一个文字周围缺少结束单引号。我尝试转义圆括号和正斜杠,但无济于事。什么会导致filter方法抛出上述异常?
最佳答案
快速阅读 jsonPath 文档后发现,括号并不能完成您想象的工作。
在 XPath 中,括号用于进行分组,但是在 jsonPath 中,它们用于脚本表达式(使用任何底层脚本引擎)。
您作为脚本表达式呈现的值可能无效。
关于javascript - jsonPath 和意外的非法 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11670384/