簡體   English   中英

讀取 memory 發出的大 JSON 文件

[英]Reading Large JSON file giving out of memory

我有一個 121MB 的大型 JSON 文件。 我想閱讀它的結構和數據。 我無法使用notepad++和chrome的json編輯器插件閱讀它。 我試過用 java 來閱讀它。 簡單的 json 讀數也給出異常:

線程“主”java.lang.OutOfMemoryError 中的異常:超出 GC 開銷限制

如果我使用 jackson 流式傳輸 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 結構?

如果您只想預覽文件中的一般結構和數據(並且不一定需要將整個文件加載到內存中),您可以使用 Cluria ( http://www.cluria.com )。 如果您只想預覽文件中的內容,它將允許非常快速地加載非常大的 JSON 文件。

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

在此處輸入圖片說明

免責聲明:我創建了 Cluria。

Notepad++ 允許您一次打開一個大文件。

嘗試關閉記事本++中所有已經打開的文件,然后單獨打開這個(大)文件。

我遇到了同樣的問題,我上面提到的解決了我的問題。

編輯:如果即使這樣也不能解決您的問題,那是您系統中的內存問題。 或者,您可以使用010Editor它允許您打開高達 5GB 空間的大文件。

試試這個 JSON 查看器和格式化程序Gizmo JSON 查看器和格式化程序 它可以處理大型 json 文件。 您可以使用它查看和格式化 100MB JSON 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM