json - 如何遍历 json 响应

标签 json groovy

我需要一些关于尝试从 JSON 响应中查找值列表的指导。

我有一个如下所示的 JSON:

"reviewRatingCount":    [
            {
         "id": 1,
         "name": "xxx",
         "value": x,
         "percentage": 8.49
      },
            {
         "id": 2,
         "name": "xxx",
         "value": x,
         "percentage": 11.19
      },
            {
         "id": 3,
         "name": "xxx",
         "value": x,
         "percentage": 22.74
      }
...

现在我执行了检查以确保“ReviewRatingCount”不等于 null:

def reviewratingcount = json.reviewratingcount
assert reviewratingcount != null

我想要做的是确保此“reviewRatingCount”中的 ID 等于 1、2、3。所以实际上我希望它遍历 reviewRatingCount 中的 ID,并确保所有 ID 都包含正确的值。这是如何应用于 groovy 脚本的,这样我不仅可以将它应用于这个示例,还可以应用于其他检查,如“名称”?

谢谢。

最佳答案

无需迭代,使用*操作符:

import groovy.json.JsonSlurper

def json = '''{"reviewRatingCount":    [
            {
         "id": 1,
         "name": "Terrible",
         "value": 214,
         "percentage": 8.49
      },
            {
         "id": 2,
         "name": "Poor",
         "value": 282,
         "percentage": 11.19
      },
            {
         "id": 3,
         "name": "Average",
         "value": 573,
         "percentage": 22.74
      }
]}'''

def slurped = new JsonSlurper().parseText(json)
assert slurped.reviewRatingCount*.id == [1, 2, 3]

关于json - 如何遍历 json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41522477/

相关文章:

java - 使用 JSON_TABLE 和 Java 在 Oracle DB 上同时查询 JSON

grails - Params.list()提供不正确的值

javascript - 如何获取数据迭代Json?

c# - 按给定值选择 json 标记

c# - 将嵌套的 JSON 反序列化为 C# 对象

javascript - MVC Controller 返回 JSON 列表

java - groovy 脚本中使用 java 的 Hello World 示例给出了空指针

linux - 有什么方法可以自动调用网络服务吗?

java - 如何在 MarkupBuilder 中使用 Groovy 将日期字符串转换为日历日期?

java - 我无法创建常规项目