Get the id of a parent element by a sub-child value of Json response using groovy
SOLVED- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-20-2019
07:22 PM
03-20-2019
07:22 PM
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
Solved! Go to Solution.
4 REPLIES 4
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-20-2019
11:47 PM
03-20-2019
11:47 PM
@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.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-21-2019
02:06 PM
03-21-2019
02:06 PM
yes, this is worked. Thanks
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-21-2019
10:16 PM
03-21-2019
10:16 PM
Thats ok @avidCoder . It takes time to optimize. But,yes can simplifed as below entire script:
def json = new groovy.json.JsonSlurper().parseText(context.expand( '${GetLoansList#Response}' )) log.info json.items.find{it.name = 'LAI-00152581'}.id
Regards,
Rao.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-21-2019
10:18 PM
03-21-2019
10:18 PM
Thats ok @avidCoder . It takes time to get into optimization. But,yes it can simplifed as below entire script:
def json = new groovy.json.JsonSlurper().parseText(context.expand( '${GetLoansList#Response}' )) log.info json.items.find{it.name = 'LAI-00152581'}.id
Regards,
Rao.
