读取并迭代JSON文件

时间:2015-11-18 11:11:13

标签: java arrays json eclipse parsing

我有一个wikidata json文件,我想将它读入JSONArray,以便我可以遍历其项目并获取每个元素的属性和值。我该怎么做? 我尝试迭代整个文本并解析每一行,但是对于一个大文件来说它太长而且复杂,我无法通过这种方式得到它。在Java中有更有效的方法将JSON文件读入JSON数组或对象,以便我可以遍历其项目吗?

4 个答案:

答案 0 :(得分:2)

您可以使用Gson流式读取大型json文件,如下所示:

JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "UTF-8"));
reader.beginArray();
while (reader.hasNext()) {
      //Message message = Gson.fromJson(reader, Message.class);
      //...
}
reader.endArray();
reader.close();

参考:

  1. Gson streaming
  2. Gson Streaming to read and write JSON

答案 1 :(得分:1)

我建议使用https://github.com/jayway/JsonPath来解析它并查询您需要的不同部分。它将为您构建列表。

即。 $ .store.book [?(@。price< 10)]

答案 2 :(得分:0)

一个好的解决方案是使用库来完成这项工作。非常好的库是gson。 您可以阅读库here的文档。

答案 3 :(得分:0)

FileReader fileReader = new FileReader(file); 
JSONObject json = (JSONObject) parser.parse(fileReader);
String name = (String) json.get("name"); 
JSONArray departments = (JSONArray) json.get("departments");

我认为这可能会有所帮助