簡體   English   中英

在JAVA中讀取超大且動態嵌套的JSON文件

[英]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解析器,例如RapidJSONJackson 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.

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