Получите идентификатор родительского элемента по дочернему значению ответа Json, используя 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
 }

Я хочу получить соответствующий «идентификатор» для данного имени («имя»: «LAI-00152581»,). Как лучше всего это сделать? Спасибо


person Wicki    schedule 21.03.2019    source источник


Ответы (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 }
person Dmitry Khamitov    schedule 21.03.2019