0

我不确定我在这里做错了什么,我正在努力让它正常工作。使用这个 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返回根对象。

我觉得我错过了一些非常明显的东西,但文档似乎只涵盖了一级键值。也许它不支持它?

谢谢!

4

1 回答 1

1

就这个

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

它不适合您(findAll {it.author.age == 45}),因为您从根目录工作,并且“it”变量返回“books”对象,该对象没有“author”字段。

于 2019-01-19T08:09:04.957 回答