javascript - jsonPath 和意外的非法 token

标签 javascript jquery json xpath jsonpath

将以下字符串传递给 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/

相关文章:

javascript - 检测 codemirror 中的新行,而不覆盖 Enter 键的默认行为

javascript - 如何检测点是否与 View 中部分形状相交

javascript - 使用多个键对 MongoDB 中的集合进行排序

Javascript 添加系列中不存在的日期

javascript - 与 Javascript 相比,执行 AES 加密是 Ruby

javascript - 如何消除 Angular 中的故障/延迟?

php - jqGrid 集成工具栏搜索不起作用

javascript - 如何让mirror like/click div影响其他div?

javascript - 当我悬停链接时如何更改 DIV 背景?

java - 如何将json数据添加到客户端url