how to parse json using groovy
grails, groovy, json
Solution
That response is a Map, with a single element with key '212315952136472'. There's no 'data' key in the Map. If you want to loop through all entries, use something like this:
JSONObject userJson = JSON.parse(jsonResponse)
userJson.each { id, data -> println data.link }
If you know it's a single-element Map then you can directly access the `link`:
def data = userJson.values().iterator().next()
String link = data.link
And if you knew the id (e.g. if you used it to make the request) then you can access the value more concisely:
String id = '212315952136472'
...
String link = userJson[id].link
Problem
I want to parse JSON data which is coming in like: ``` { "212315952136472": { "id": "212315952136472", "name": "Ready", "picture": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/195762_212315952136472_4343686_s.jpg", "link": "http://www.hityashit.com/movie/ready", "likes": 5, "category": "Movie", "description": "Check out the reviews of Ready on http://www.hityashit.com/movie/ready" } } ``` The code I am using is: ``` JSONElement userJson = JSON.parse(jsonResponse) userJson.data.each { Urls = it.link } ``` But I am not able to get anything assigned to `Urls`. Any suggestions?