jsonPath和意外的非法令牌

时间:2012-07-26 13:29:23

标签: 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方法抛出上述异常?

1 个答案:

答案 0 :(得分:1)

快速阅读jsonPath文档,它看起来像括号不能完成您认为的工作。

在XPath中,括号用于分组,但在jsonPath中,它们用于脚本表达式(使用底层脚本引擎)。

可能是您作为脚本表达式呈现的值无效。