[英]Read Very Large and Dynamic Nested JSON file in JAVA
我有一個巨大的json文件(++ 500mb),由嵌套json文件的動態結構組成。 此json使用python中的json.dump提取到文件中。 我的問題是如何使用緩沖方法讀取此巨大的json文件?
因為如果我在同一運行時中讀取所有字符串,則會引發Java堆錯誤。 我的想法是我想讀取每個記錄的json,然后解析它,之后繼續下一個記錄,解析它,依此類推。 但是我怎么知道哪一個是一個json記錄的結尾。 因為我找不到每個json記錄之間的分隔符。
有什么建議嗎? 請詢問是否不清楚。 謝謝
假設您不能使用-Xmx
來簡單地增加堆空間大小,則可以切換JSON讀取邏輯以使用SAX JSON解析器,例如RapidJSON或Jackson Streaming API 。 這些庫不是將整個JSON主體存儲在內存中,而是針對每個遇到的JSON構造發出一個事件:
{
"hello": "world",
"t": true
...
}
使用RapidJSON時將產生以下內容:
StartObject()
Key("hello", 5, true)
String("world", 5, true)
Key("t", 1, true)
Bool(true)
...
EndObject()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.