解析一个巨大的JSON文件

时间:2016-04-22 22:05:57

标签: groovy

我有一个非常大的JSON文件(大约一千兆字节)我要解析。

我尝试了JsonSlurper,但看起来它试图将整个文件加载到内存中,导致内存不足异常。

这是我的一段代码:

def parser = new JsonSlurper().setType(JsonParserType.CHARACTER_SOURCE);
def result = parser.parse(new File("equity_listing_full_201604160411.json"))

result.each{
println it.Listing.ID
}

Json就是这样的,但是更多的列和行

更长
[
{"Listing": {"ID":"2013056","VERSION":"20160229:053120:000","NAME":"XXXXXX","C_ID":["1927445"],}},
{"Listing": {"ID":"2013057","VERSION":"20160229:053120:000","NAME":"XXXXXX","C_ID":["1927446"],}},
{"Listing": {"ID":"2013058","VERSION":"20160229:053120:000","NAME":"XXXXXX","C_ID":["1927447"],}}
]

我希望能够逐行阅读。我可能只是分别解析每一行,但是当你读到时,我想可能会有一些解析的东西。

1 个答案:

答案 0 :(得分:0)

建议谷歌使用GSON。 这里有一个流式解析选项:https://sites.google.com/site/gson/streaming