Reputation: 4953
I'm trying to get a list of ID's from a JSON array in Groovy. I know how to get the ID's using the regular FOR loop, but I would like to know how to do the same with the each method. I'm not sure how to implement that. Does anyone have any idea? Thank you in advance. Here's my code that works just fine using the regular for loop. However I would like to do it with the each method.
import groovy.json.*
def restresponse = '[{"id":5, "name":"Bob"},{"id":8, "name":"John"},{"id":12, "name":"Jim"},{"id":20, "name":"Sally"}]'
def json = new JsonSlurper().parseText(restresponse)
def myListOfIDs = []
for (int i = 0; i < json.size; i++) {
myListOfIDs.add(json[i].id) // getting all ID's for each SourceSystem
}
log.info(myListOfIDs) // This prints out all this IDs
Upvotes: 1
Views: 5293
Reputation: 4096
The shortest way to perform this "conversion" is by using the Groovy's Collection collect
method, e.g.:
def myListOfIDs = json.collect { ele -> ele.id }
EDIT: As pointed out by @dmahapatro there's an even shorter possibility:
def myListOfIDs = json*.id
Upvotes: 5