[英]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.