java - 嵌套对象上的 GPath

标签 java json groovy gpath

我不确定我在这里做错了什么,而且我很难让它正常工作。使用此 JSON:

{
    "books": [
        {
            "category": "reference",
            "author": {
                "name": "Nigel Rees",
                "age": 45
            },
            "title": "Sayings of the Century",
            "price": 8.95,
            "tax": 7.00
        },
        {
            "category": "reference",
            "author": {
                "name": "Evelyn Waugh",
                "age": 30
            },
            "title": "A cheap book",
            "price": 6.00,
            "tax": 3.00
        }
    ]
}

例如,我无法提取作者年龄为 45 岁的书籍。我尝试过类似以下的操作(使用 books 文档根集)

findAll {it.author.age == 45}
findAll {it.author}.findAll {it.age == 45}
findAll {it.author}*.each {it.age == 45 }

我仍然取回所有包含年龄项目的记录。它可以是任何任意对象,它可能没有 author 记录等。我希望返回根 book 对象。

我觉得我遗漏了一些非常明显的东西,但文档似乎只涵盖了一层键值。可能是不支持吧?

谢谢!

最佳答案

就是这里

books.findAll{it.author.age==45}

它不按您的方式工作(findAll {it.author.age == 45}),因为您从根开始工作,并且“it”变量返回“books”对象,该对象没有字段“author”。

关于java - 嵌套对象上的 GPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45552998/

相关文章:

java - Java 中的泛型类型

java - 创建一个在每次调用时打印数组列表的不同随机条目的方法?

java - 如何在运行时在 Android 中显示图像并将单选按钮作为列表中的单选组

android - 从json中插入数据查询时出现sqlite异常?

java - API 后端的应用程序修订版 'X' 与预期的 'Y' 不一样

尝试解析 JSON 数据时出现 android JSONException

php - 使用 JSON(跨域)将数据发送到 php

grails - 使用Grails应用程序的Crawler4j引发错误

java - 常规闭包内部如何工作?

jenkins - Jenkinsfile 参数化构建中的环境和参数之间有什么关系?