Json 如何在SoapUI中使用groovy脚本获取数组号?

Json 如何在SoapUI中使用groovy脚本获取数组号?,json,groovy,soapui,Json,Groovy,Soapui,我想在SoapUI中使用Groovy脚本在Json响应中断言属性的值。我知道name的值,但我需要知道id位于哪个位置 json响应示例: { “姓名”:[ { “id”:1, “姓名”:“Ted” }, { “id”:2, “名称”:“雷” }, { “id”:3, “名称”:“Kev” } ] } 假设我知道有一个名称Ray,我想要位置和id(名称[1].id)以下是查找相同名称的脚本: import groovy.json* //使用固定json解释如何检索数据 //当然,你

我想在
SoapUI
中使用Groovy脚本在
Json
响应中断言属性的值。我知道name的值,但我需要知道id位于哪个位置

json响应示例:

{
“姓名”:[
{  
“id”:1,
“姓名”:“Ted”
},
{  
“id”:2,
“名称”:“雷”
},
{  
“id”:3,
“名称”:“Kev”
}
]
}

假设我知道有一个名称Ray,我想要位置和id(名称[1].id)

以下是查找相同名称的脚本:

import groovy.json*
//使用固定json解释如何检索数据
//当然,你也可以使用你得到的动态值
def response=''{“name”:[{“id”:1,“name”:“Ted”,},{“id”:2,“name”:“Ray”,},{“id”:3,“name”:“Kev”,}]}''
//解析json字符串并获取名称
def names=new JsonSlurper().parseText(响应).names
//当名称为Ray时检索id值
def rayId=names.find{it.name=='Ray'}.id
log.info“光线的Id为:${rayId}”
//获取位置和id的另一种方法
names.eachWithIndex{元素,索引->
如果(element.name=='Ray'){
log.info“位置:$index,Id为:${element.Id}”
}
}
您可以在这里看到输出


如果名称为
Ray
,是否要查找
id
值?别担心,添加了我的答案,请检查。@trans,您有机会尝试吗?如果与“Ray”的比较不匹配,这可能会引发空指针异常