我正在使用SoapUI测试RESTful webservice。我们使用Groovy。 我正在使用jsonslurper将响应解析为Object类型。
我们的回应与此类似:
{
"language":[
{
"result":"PASS",
"name":"ENGLISH",
"fromAndToDate":null
},
{
"result":"FAIL",
"name":"MATHS",
"fromAndToDate": {
"from":"02/09/2016",
"end":"02/09/2016"
}
},
{
"result":"PASS",
"name":"PHYSICS",
"fromAndToDate":null
}
]
}
在此之后,我坚持如何。
language
开头)result
密钥的值,如果只有name='MATHS'
。)我可以使用Java做到这一点,但是刚刚学习Groovy我无法理解这一点。我们有不同的密钥,名称相同。
答案 0 :(得分:2)
您可以将其解析为地图,然后使用标准的groovy函数:
def response = '''{
"language":[
{"result":"PASS","name":"ENGLISH","fromAndToDate":null},
{"result":"FAIL","name":"MATHS","fromAndToDate":{"from":"02/09/2016","end":"02/09/2016"}},
{"result":"PASS","name":"PHYSICS","fromAndToDate":null}
]
}'''
import groovy.json.*
// Parse the Json string
def parsed = new JsonSlurper().parseText(response)
// Get the value of "languages" (the list of results)
def listOfCourses = parsed.language
// For this list of results, find the one where name equals 'MATHS'
def maths = listOfCourses.find { it.name == 'MATHS' }