【问题标题】:Groovy - parse json: how to find certain "block" in json response with the goal of further parsing itGroovy - 解析 json:如何在 json 响应中找到某些“块”,以进一步解析它
【发布时间】:2018-11-21 16:35:46
【问题描述】:

前置条件: 我正在 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 的那个),并继续解析这个块,以进一步断言。

例如,我要验证,直接在“id”=2的“block”中,那些node1/node2/node 3对应的是{2,6,2}。

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

【问题讨论】:

  • JsonSlurper 可以将 jsonstring 解析为映射/数组。之后,它只是元素的迭代/查找......
  • 嗨!当然,slurper 似乎很合适,但我坚持寻找具有特定 ID 的实例。是的,我们可以找到“id = 2”,但是如何保存地图的那部分,只有它呢?

标签: json groovy soapui


【解决方案1】:
import groovy.json.JsonSlurper
def data = new JsonSlurper().parse ...

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    相关资源
    最近更新 更多