1

我有一个 121MB 的大型 JSON 文件。我想阅读它的结构和数据。我无法使用notepad++和chrome的json编辑器插件阅读它。我试过用java阅读它。简单的 json 读取也给出了异常:

线程“主”java.lang.OutOfMemoryError 中的异常:超出 GC 开销限制

如果我使用杰克逊流媒体 API。如何完整读取结构和数据?我不知道它的 json 结构键和值。我使用这样的代码:

import java.io.File;
import java.io.IOException;

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;


public class JacksonStreamExample {
    public static void main(String[] args) {

        try {

            JsonFactory jfactory = new JsonFactory();

            /*** read from file ***/
            JsonParser jParser = jfactory.createParser(new File(
                    "E:\\NUST\\Semester 3\\region_descriptions.json"));
            while (jParser.nextToken() != JsonToken.END_OBJECT) {

            System.out.println(jParser.getCurrentName());
            jParser.nextToken();
            System.out.println(jParser.getText());
            }
            jParser.close();

        } catch (JsonGenerationException e) {

            e.printStackTrace();

        }catch (IOException e) {

            e.printStackTrace();

        }

    }

}

有没有办法用任何文本或 JSON 查看器来阅读它?或使用java代码?如果是java代码,如何读取JSON结构?

4

2 回答 2

2

如果您只是想预览文件中的大体结构和数据(不一定需要将整个文件加载到内存中),您可以使用 Cluria ( http://www.cluria.com )。如果您只想预览文件中的内容,它将允许非常快速地加载非常大的 JSON 文件。

使用来自 SQuAD 的 dev JSON 文件的示例:https ://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v2.0.json

在此处输入图像描述

免责声明:我创建了 Cluria。

于 2020-03-04T03:08:39.610 回答
1

Notepad++ 允许您一次打开一个大文件。

尝试关闭记事本++中所有已经打开的文件,然后单独打开这个(大)文件。

我遇到了同样的问题,我上面提到的解决了我的问题。

编辑:如果即使这样也不能解决您的问题,那是您系统中的内存问题。或者,您可以使用010Editor它将允许您打开空间高达 5GB 的大文件。

于 2017-11-26T10:20:22.420 回答