我在解析一个巨大的 json 文件(200mb)时遇到问题。起初我尝试使用 JACKSON 将 json 解析为树。但是,我遇到了堆大小问题。出于某种原因,增加堆大小不是一种选择。
JSON格式:
{
"a1":{ "b1":{"c1":"somevalue", "c2":"somevalue"}, ... },
"a2":{ "b1":{"c1":"somevalue"},"c3":"somevalue"}, ... },
....
}
我想做的是产生像这样的字符串
str1 = "{ "b1":{"c1":"somevalue", "c2":"somevalue"}, ... }"
str2 = "{ "b1":{"c3":"somevalue"},"c4":"somevalue"}, ... }"
有没有办法在没有堆问题的情况下做到这一点?
在 python 中,有一种简单的方法可以做到这一点并且没有堆问题(没有 JVM)
data = json.loads(xxx)
for key,val in data.iteritems():
puts val
一些想法:我可能不需要使用杰克逊树方法,因为我只想要字符串。流式处理 Jackson 可能是一种选择,但我很难编写它,因为我们的 json 格式非常灵活。任何建议将不胜感激!
谢谢