我正在解析这个文件: 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 库。
感谢您的帮助:)
最佳答案
这段代码应该可以工作:
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
字符串。
关于java - JSON - 在 Java 中使用 JSONArray 解析文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20204047/