1

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

我最初的猜测是非法字符与圆括号或文字值中存在的正斜杠有关。这可以解释为什么最后一个文字周围缺少单引号。我尝试转义圆括号和正斜杠,但无济于事。什么会导致过滤方法抛出上述异常?

4

1 回答 1

1

快速阅读 jsonPath 文档后,看起来括号并不能起到您想像的作用。

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

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

于 2012-07-26T13:55:10.330 回答