java - JSON - 在 Java 中使用 JSONArray 解析文档

标签 java json arrays simplejson

我正在解析这个文件: 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/

相关文章:

python - python中列表子集的 boolean 索引

android - 在 Android 中单击适配器中的按钮时,无法刷新从 JSON 获取数据的 ListView

php - 如何使用 json_encode 更正 php 中的语法

arrays - Golang 最佳实践 : empty array response or error?

java - 使用正则表达式查找模式匹配的第 n 个实例

java - 日期的字符串解析、JSON Stringify 和 GSON 解析失败

css - css 中用于多个 ID 的数组

java - 为复杂的 Json 层次结构创建 Java POJO 类

java - 如何实时计算网页排名

java - 在 Sonar 上发布 JUnit 测试报告