我想知道是否有可能在子级过滤复杂对象(而不是简单的字符串),并检索那些子级与预测匹配的父节点。

以Jayway的github项目https://github.com/jayway/JsonPath#path-examples的书店为例。

如果我将“作者”更改为更复杂的对象,例如:

  "authors": [
    {
      "firstName": "Nigel",
      "lastName": "Rees"
    },
    {
      "firstName": "Evelyn",
      "lastName": "Waugh"
    }
  ]

这样,我怎么能找回“所有由姓氏为'Waugh'的人写的


我试图和Json Evaluator(http://jsonpath.herokuapp.com/)一起使用$.store.book[?(@.authors[?(@.lastName == 'Waugh')])],但过滤器似乎无法正常工作。我猜Jayway不允许嵌套谓词。如果是这样,是否有任何解决方法?

另外,如果还有其他JsonPath Java实现可以帮助您,我也希望学习它。

先感谢您。

最佳答案

看起来如果不为父数组(即作者)提供索引值就无法实现。我知道它可能无法完全解决问题。我只是想确认当另一个数组中有数组时的限制。

$.store.book[?(@.authors[0].lastName == 'Waugh')]

08-03 12:20