mpw83
7 years agoContributor
Get the id of a parent element by a sub-child value of Json response using groovy
I have following groovy script to get the values from response text.
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)
my json is similar to this
{
"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
}
I want to get the corresponding ID for the given name ("name": "LAI-00152581",). What is the best way to do this? Thanks
mpw83 - This is how you can go with it :-
import groovy.json.JsonSlurper def 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" }''' def jsonSlurper = new JsonSlurper() def obj = jsonSlurper.parseText(json) obj.items.each{ if(it.name == 'LAI-00152581'){ log.info it.id } }nmrao - You can also suggest better code.