【问题标题】:Reading Large JSON file giving out of memory读取大型 JSON 文件内存不足
【发布时间】:2023-04-09 00:58:01
【问题描述】:

我有一个 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结构?

【问题讨论】:

标签: java json notepad++ json-view


【解决方案1】:

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

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

免责声明:我创建了 Cluria。

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • 我关闭了所有文件,现在它仍然说“文件太大,记事本++无法打开”
    • 更新了评论。请检查。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2011-12-14
    • 2012-11-05
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    相关资源
    最近更新 更多