#json #groovy #soapui #jsonslurper
#json #groovy #soapui #jsonslurper
Вопрос:
У меня есть следующий скрипт groovy для получения значений из ответа.
import com.eviware.soapui.support.XmlHolder
import groovy.json.JsonSlurper
def response = context.expand( '${GetLoansList#Response}' ).toString()
log.info(response)
def slurper = new JsonSlurper()
def json = slurper.parseText response
log.info(json.items.id)
мой ответ json похож на этот
{
"items" : [
{
"id" : 48223,
"name" : "LAI-00151007",
"amount" : 25050.0,
"interest_rate" : 25.99,
"term" : 60,
},
{
"id" : 48262,
"name" : "LAI-00152581",
"amount" : 44225.0,
"interest_rate" : 18.9,
"term" : 36,
},
],
"total_count" : 13
}
Я хочу получить соответствующий ‘id’ для заданного имени («name»: «LAI-00152581»,). Каков наилучший способ сделать это? Спасибо
Ответ №1:
Вы можете использовать:
json.items.find({ it.name == "LAI-00152581" })?.id
?.
это для безопасности, когда нет items
соответствия критериям. В этом случае результатом будет null
Начиная с Groovy 2.5.0, существует еще один способ сделать это, который семантически эквивалентен:
json.items.findResult { if (it.name == "LAI-00152581") return it.id }