【问题标题】:Does Jayway support filter on children level, return the parent node?Jayway 是否支持子级过滤,返回父节点?
【发布时间】:2016-12-02 09:24:08
【问题描述】:

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

以 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 实现可以提供帮助,我很想学习它。

提前谢谢你。

【问题讨论】:

    标签: java jsonpath


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的意见。是的,我以你的方式结束了循环来获取我需要的外部节点。和你一样,我想知道这是否是 Jayway JsonPath 的限制。
    猜你喜欢
    • 2016-12-22
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多