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?

Original source

Related problems