如何使用groovy脚本从Json获取值
嗨,我是groovy和API自动化的新手。我有下面的Json,我想添加断言来根据序列号检查cyclestartdate和cycleEnddate如何使用groovy脚本从Json获取值,groovy,Groovy,嗨,我是groovy和API自动化的新手。我有下面的Json,我想添加断言来根据序列号检查cyclestartdate和cycleEnddate { "status" : "success", "locale" : "", "data" : { "periods" : [ { "payCycleId" : "custompayperiod", "sequence" : 1, "
{
"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-01Groovy提供了使解析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'