I'm parsing this document: http://pastebin.com/M3Gsbf1t as you can see it's kind of big. This document was generated by Youtube Data API v3. I want to get all "title" elements and display them. My code:
Object obj = parser.parse(str); // str contains the JSON code
JSONObject jsonObject = (JSONObject) obj;
JSONArray msg = (JSONArray) jsonObject.get("title");
Iterator iterator = msg.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
but it returns "NullPointerException". If I replace the "title" with the "items" it works fine but it returns me a lot of informations that I don't need. I'm using the JSON.simple library.
Thanks for help :)
This code should work:
JSONObject jsonObject = (JSONObject) obj;
JSONArray msg = (JSONArray) jsonObject.get("items");
Iterator iterator = msg.iterator();
while (iterator.hasNext()) {
//System.out.println(iterator.next());
JSONObject item = (JSONObject) iterator.next();
JSONObject item_snippet = (JSONObject) item.get("snippet");
System.out.println( item_snippet.get("title"));
}
You have a JSONObject at the root of your JSON string. In it, there's an JSONArray named items
. From it you have to pull out individual items in while loop.
For each item there's JSONObject snippet
nested in. Finally you'll find your title
string in it.