Groovy - 解析 json:如何在 json 响应中找到某些 "block" 以进一步解析它

Groovy - parse json: how to find certain "block" in json response with the goal of further parsing it

先决条件: 我正在 SoapUI 工具中测试 REST。 我正在发送请求,结果 我有 json 响应,我想借助 groovy 代码解析它:

    {"List": [
      {
      "id": 1,
      "data1": "xxx",    
      "data2":       {
         "node1": "1",
         "node2": "4",
         "node3": 1,
      }
   },
      {
      "id": 2,
      "data1": "yyy",    
      "data2":       {
         "node1": "2",
         "node2": "6",
         "node3": 2,
      }
   },
      {
      "id": 3,
      "data1": "zzz",    
      "data2":       {
         "node1": "2",
         "node2": "6",
         "node3": 2,
      }
   }
]}

目标:我想找到某个块(例如"id" = 2),并继续解析这个块以进一步断言。

例如,我想验证一下,直接在"block"和"id"=2中,那些node1/node2/node 3对应的是{2,6,2}。

那么,如何使用 groovy(在 soapUI 脚本步骤中)做到这一点?

import groovy.json.JsonSlurper
def data = new JsonSlurper().parse ...

def e = data.List.find{it.id==1}
assert e.data1=="xxx"