The parseText function returns a data structure of lists and maps. Do a log.info to see what the json actually looks like. When you use jsonElements.shopId what you get back will be map(s). You should access that as a Map.
Try the below code to loop through the json response.
import groovy.json.JsonSlurper
def jsonResp = context.expand('${CitiesJSON - Request 1#Response}')
def jsonElements = new JsonSlurper().parseText(jsonResp)
for ( value in jsonElements.geonames ) {
value.each{
log.info "${it.key}:${it.value}"
}
}
I made use of the geonames web service and CitiesJSON - Request 1 is the name of my rest test request.
/*This code returns the below data
Thu Apr 10 17:29:50 ADT 2014:INFO:fcodeName:capital of a political entity
Thu Apr 10 17:29:50 ADT 2014:INFO:toponymName:Mexico City
Thu Apr 10 17:29:50 ADT 2014:INFO:countrycode:MX
Thu Apr 10 17:29:50 ADT 2014:INFO:fcl:P
Thu Apr 10 17:29:50 ADT 2014:INFO:fclName:city, village,...
Thu Apr 10 17:29:50 ADT 2014:INFO:name:Mexico City
Thu Apr 10 17:29:50 ADT 2014:INFO:wikipedia:en.wikipedia.org/wiki/Mexico_City
Thu Apr 10 17:29:50 ADT 2014:INFO:lng:-99.12766456604
Thu Apr 10 17:29:50 ADT 2014:INFO:fcode:PPLC
Thu Apr 10 17:29:50 ADT 2014:INFO:geonameId:3530597
Thu Apr 10 17:29:50 ADT 2014:INFO:lat:19.428472427036
Thu Apr 10 17:29:50 ADT 2014:INFO:population:12294193
Thu Apr 10 17:29:50 ADT 2014:INFO:fcodeName:capital of a political entity
Thu Apr 10 17:29:50 ADT 2014:INFO:toponymName:Manila
Thu Apr 10 17:29:50 ADT 2014:INFO:countrycode:PH
Thu Apr 10 17:29:50 ADT 2014:INFO:fcl:P
Thu Apr 10 17:29:50 ADT 2014:INFO:fclName:city, village,...
Thu Apr 10 17:29:50 ADT 2014:INFO:name:City of Manila
Thu Apr 10 17:29:50 ADT 2014:INFO:wikipedia:en.wikipedia.org/wiki/Manila
Thu Apr 10 17:29:50 ADT 2014:INFO:lng:120.9822
Thu Apr 10 17:29:50 ADT 2014:INFO:fcode:PPLC
Thu Apr 10 17:29:50 ADT 2014:INFO:geonameId:1701668
Thu Apr 10 17:29:50 ADT 2014:INFO:lat:14.6042
Thu Apr 10 17:29:50 ADT 2014:INFO:population:10444527
Thu Apr 10 17:29:50 ADT 2014:INFO:fcodeName:capital of a political entity
Thu Apr 10 17:29:50 ADT 2014:INFO:toponymName:Dhaka
Thu Apr 10 17:29:50 ADT 2014:INFO:countrycode:BD
Thu Apr 10 17:29:50 ADT 2014:INFO:fcl:P
Thu Apr 10 17:29:50 ADT 2014:INFO:fclName:city, village,...
Thu Apr 10 17:29:50 ADT 2014:INFO:name:Dhaka
Thu Apr 10 17:29:50 ADT 2014:INFO:wikipedia:en.wikipedia.org/wiki/Dhaka
Thu Apr 10 17:29:50 ADT 2014:INFO:lng:90.40743827819824
Thu Apr 10 17:29:50 ADT 2014:INFO:fcode:PPLC
Thu Apr 10 17:29:50 ADT 2014:INFO:geonameId:1185241
Thu Apr 10 17:29:50 ADT 2014:INFO:lat:23.710395616597037
Thu Apr 10 17:29:50 ADT 2014:INFO:population:10356500
Thu Apr 10 17:29:50 ADT 2014:INFO:fcodeName:capital of a political entity
Thu Apr 10 17:29:50 ADT 2014:INFO:toponymName:Seoul
Thu Apr 10 17:29:50 ADT 2014:INFO:countrycode:KR
Thu Apr 10 17:29:50 ADT 2014:INFO:fcl:P
Thu Apr 10 17:29:50 ADT 2014:INFO:fclName:city, village,...
Thu Apr 10 17:29:50 ADT 2014:INFO:name:Seoul
Thu Apr 10 17:29:50 ADT 2014:INFO:wikipedia:en.wikipedia.org/wiki/Seoul
Thu Apr 10 17:29:50 ADT 2014:INFO:lng:126.9784
Thu Apr 10 17:29:50 ADT 2014:INFO:fcode:PPLC
Thu Apr 10 17:29:50 ADT 2014:INFO:geonameId:1835848
Thu Apr 10 17:29:50 ADT 2014:INFO:lat:37.566
Thu Apr 10 17:29:50 ADT 2014:INFO:population:10349312
Thu Apr 10 17:29:50 ADT 2014:INFO:fcodeName:capital of a political entity
Thu Apr 10 17:29:50 ADT 2014:INFO:toponymName:Jakarta
Thu Apr 10 17:29:50 ADT 2014:INFO:countrycode:ID
Thu Apr 10 17:29:50 ADT 2014:INFO:fcl:P
Thu Apr 10 17:29:50 ADT 2014:INFO:fclName:city, village,...
Thu Apr 10 17:29:50 ADT 2014:INFO:name:Jakarta
Thu Apr 10 17:29:50 ADT 2014:INFO:wikipedia:en.wikipedia.org/wiki/Jakarta
Thu Apr 10 17:29:50 ADT 2014:INFO:lng:106.84513092041016
Thu Apr 10 17:29:50 ADT 2014:INFO:fcode:PPLC
Thu Apr 10 17:29:50 ADT 2014:INFO:geonameId:1642911
Thu Apr 10 17:29:50 ADT 2014:INFO:lat:-6.214623197035775
Thu Apr 10 17:29:50 ADT 2014:INFO:population:8540121
Thu Apr 10 17:29:50 ADT 2014:INFO:fcodeName:capital of a political entity
Thu Apr 10 17:29:50 ADT 2014:INFO:toponymName:Tokyo
Thu Apr 10 17:29:50 ADT 2014:INFO:countrycode:JP
Thu Apr 10 17:29:50 ADT 2014:INFO:fcl:P
Thu Apr 10 17:29:50 ADT 2014:INFO:fclName:city, village,...
Thu Apr 10 17:29:50 ADT 2014:INFO:name:Tokyo
Thu Apr 10 17:29:50 ADT 2014:INFO:wikipedia:en.wikipedia.org/wiki/Tokyo
Thu Apr 10 17:29:50 ADT 2014:INFO:lng:139.69171
Thu Apr 10 17:29:50 ADT 2014:INFO:fcode:PPLC
Thu Apr 10 17:29:50 ADT 2014:INFO:geonameId:1850147
Thu Apr 10 17:29:50 ADT 2014:INFO:lat:35.6895
Thu Apr 10 17:29:50 ADT 2014:INFO:population:8336599
Thu Apr 10 17:29:50 ADT 2014:INFO:fcodeName:capital of a political entity
Thu Apr 10 17:29:50 ADT 2014:INFO:toponymName:Taipei
Thu Apr 10 17:29:50 ADT 2014:INFO:countrycode:TW
Thu Apr 10 17:29:50 ADT 2014:INFO:fcl:P
Thu Apr 10 17:29:50 ADT 2014:INFO:fclName:city, village,...
Thu Apr 10 17:29:50 ADT 2014:INFO:name:Taipei
Thu Apr 10 17:29:50 ADT 2014:INFO:wikipedia:en.wikipedia.org/wiki/Taipei
Thu Apr 10 17:29:50 ADT 2014:INFO:lng:121.531846
Thu Apr 10 17:29:50 ADT 2014:INFO:fcode:PPLC
Thu Apr 10 17:29:50 ADT 2014:INFO:geonameId:1668341
Thu Apr 10 17:29:50 ADT 2014:INFO:lat:25.047763
Thu Apr 10 17:29:50 ADT 2014:INFO:population:7871900
Thu Apr 10 17:29:50 ADT 2014:INFO:fcodeName:capital of a political entity
Thu Apr 10 17:29:50 ADT 2014:INFO:toponymName:Bogotá
Thu Apr 10 17:29:50 ADT 2014:INFO:countrycode:CO
Thu Apr 10 17:29:50 ADT 2014:INFO:fcl:P
Thu Apr 10 17:29:50 ADT 2014:INFO:fclName:city, village,...
Thu Apr 10 17:29:50 ADT 2014:INFO:name:Bogotá
Thu Apr 10 17:29:50 ADT 2014:INFO:wikipedia:en.wikipedia.org/wiki/Bogot%C3%A1
Thu Apr 10 17:29:50 ADT 2014:INFO:lng:-74.08175468444824
Thu Apr 10 17:29:50 ADT 2014:INFO:fcode:PPLC
Thu Apr 10 17:29:50 ADT 2014:INFO:geonameId:3688689
Thu Apr 10 17:29:50 ADT 2014:INFO:lat:4.609705849789108
Thu Apr 10 17:29:50 ADT 2014:INFO:population:7674366
Thu Apr 10 17:29:50 ADT 2014:INFO:fcodeName:capital of a political entity
Thu Apr 10 17:29:50 ADT 2014:INFO:toponymName:Beijing
Thu Apr 10 17:29:50 ADT 2014:INFO:countrycode:CN
Thu Apr 10 17:29:50 ADT 2014:INFO:fcl:P
Thu Apr 10 17:29:50 ADT 2014:INFO:fclName:city, village,...
Thu Apr 10 17:29:50 ADT 2014:INFO:name:Beijing
Thu Apr 10 17:29:50 ADT 2014:INFO:wikipedia:en.wikipedia.org/wiki/Beijing
Thu Apr 10 17:29:50 ADT 2014:INFO:lng:116.397228240967
Thu Apr 10 17:29:50 ADT 2014:INFO:fcode:PPLC
Thu Apr 10 17:29:50 ADT 2014:INFO:geonameId:1816670
Thu Apr 10 17:29:50 ADT 2014:INFO:lat:39.9074977414405
Thu Apr 10 17:29:50 ADT 2014:INFO:population:7480601
Thu Apr 10 17:29:50 ADT 2014:INFO:fcodeName:capital of a political entity
Thu Apr 10 17:29:50 ADT 2014:INFO:toponymName:Hong Kong
Thu Apr 10 17:29:50 ADT 2014:INFO:countrycode:HK
Thu Apr 10 17:29:50 ADT 2014:INFO:fcl:P
Thu Apr 10 17:29:50 ADT 2014:INFO:fclName:city, village,...
Thu Apr 10 17:29:50 ADT 2014:INFO:name:Hong Kong
Thu Apr 10 17:29:50 ADT 2014:INFO:wikipedia:en.wikipedia.org/wiki/Hong_Kong
Thu Apr 10 17:29:50 ADT 2014:INFO:lng:114.157691001892
Thu Apr 10 17:29:50 ADT 2014:INFO:fcode:PPLC
Thu Apr 10 17:29:50 ADT 2014:INFO:geonameId:1819729
Thu Apr 10 17:29:50 ADT 2014:INFO:lat:22.2855225817732
Thu Apr 10 17:29:50 ADT 2014:INFO:population:7012738
*/
If you want to access individual datasets you could probably try something like this...
for ( value in jsonElements.geonames ) {
log.info value["name"]
}
/*this returns
Thu Apr 10 17:33:41 ADT 2014:INFO:Mexico City
Thu Apr 10 17:33:41 ADT 2014:INFO:City of Manila
Thu Apr 10 17:33:41 ADT 2014:INFO:Dhaka
Thu Apr 10 17:33:41 ADT 2014:INFO:Seoul
Thu Apr 10 17:33:41 ADT 2014:INFO:Jakarta
Thu Apr 10 17:33:41 ADT 2014:INFO:Tokyo
Thu Apr 10 17:33:41 ADT 2014:INFO:Taipei
Thu Apr 10 17:33:41 ADT 2014:INFO:Bogotá
Thu Apr 10 17:33:41 ADT 2014:INFO:Beijing
Thu Apr 10 17:33:41 ADT 2014:INFO:Hong Kong
*/
What do you mean by data store? Also, you know you can shorten your code by making it more groovy.