我正在解析这个文件: http://pastebin.com/M3Gsbf1t 你可以看到它有点大。本文档由Youtube Data API v3生成。 我想得到所有“标题”元素并显示它们。 我的代码:
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());
}
但它返回“NullPointerException”。 如果我用“项目”替换“标题”它可以正常工作,但它返回了我很多我不需要的信息。 我正在使用JSON.simple库。
感谢您的帮助:)
答案 0 :(得分:1)
此代码应该有效:
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"));
}
您的JSON字符串的根目录下有一个JSONObject。在其中,有一个名为items
的JSONArray。从中你必须在while循环中拉出单个项目。
对于每个项目,嵌套了JSONObject snippet
。最后,您会在其中找到您的title
字符串。
答案 1 :(得分:0)
jquery解决方案,这应该会给你一个标题数组,除非我读错了对象。
titles = [];
obj = $.parseJSON(str);
$.each(obj.items,function(i,v{
titles.push(v.snippet.title);
});
答案 2 :(得分:0)
应该是这样的:
Object obj = parser.parse(str); // str contains the JSON code
JSONObject jsonObject = (JSONObject) obj;
JSONArray msg = (JSONArray) jsonObject.get("items");
Iterator iterator = msg.iterator();
while (iterator.hasNext()) {
// cast next item to JSONObject
JSONObject item = (JSONObject) iterator.next();
// grab the title
System.out.println(item.get("title"));
}