如何使用groovy脚本从Json获取值

如何使用groovy脚本从Json获取值,groovy,Groovy,嗨,我是groovy和API自动化的新手。我有下面的Json,我想添加断言来根据序列号检查cyclestartdate和cycleEnddate { "status" : "success", "locale" : "", "data" : { "periods" : [ { "payCycleId" : "custompayperiod", "sequence" : 1, "

嗨,我是groovy和API自动化的新手。我有下面的Json,我想添加断言来根据序列号检查cyclestartdate和cycleEnddate

{
   "status" : "success",
   "locale" : "",
   "data" : {
      "periods" : [
         {
            "payCycleId" : "custompayperiod",
            "sequence" : 1,
            "cycleStartDate" : "2018-10-01",
            "cycleEndDate" : "2018-10-08"
         },
         {
            "payCycleId" : "custompayperiod",
            "sequence" : 2,
            "cycleStartDate" : "2018-10-09",
            "cycleEndDate" : "2018-10-16"
         }
      ]
   }
}
如何检查sequence 1 cycleStartDate是否为2018-10-01

Groovy提供了使解析JSON文档更容易的类。考虑下面的示例,将JSON文档作为<代码>字符串< /> >(它也支持不同的初始化方法):

加载JSON文档后,您可以通过访问嵌套字段来提取数据。例如,
json.data.periods
允许您访问存储在json文档中的数组。然后方法
find{it.sequence==1}
从这个数组返回一个节点,其中
sequence
字段等于
1
。最后,您可以提取
cycleStartDate
,并将其与预期日期进行比较

您可以在中找到更多有用的示例


非常感谢,它确实起作用了。因为我的声望还不到15,所以我不能投你一票,但一旦我得到了,我会投你一票。谢谢你again@syednaveed,即使你不能投票,但你可以接受答案。
import groovy.json.JsonSlurper

def inputJson = '''{
   "status" : "success",
   "locale" : "",
   "data" : {
      "periods" : [
         {
            "payCycleId" : "custompayperiod",
            "sequence" : 1,
            "cycleStartDate" : "2018-10-01",
            "cycleEndDate" : "2018-10-08"
         },
         {
            "payCycleId" : "custompayperiod",
            "sequence" : 2,
            "cycleStartDate" : "2018-10-09",
            "cycleEndDate" : "2018-10-16"
         }
      ]
   }
}'''

def json = new JsonSlurper().parseText(inputJson)

assert json.data.periods.find { it.sequence == 1 }.cycleStartDate == '2018-10-01'