我有一个非常大的JSON文件的问题,该文件太大而无法将ObjectMapper.readValue()用作JsonNode。我想使用Out of memory error while parsing a large JSON using Jackson library on Android中的解决方案,除了JSON文件是一个字段名称事先未知的单个对象之外,因此我无法创建要反序列化的模型POJO。
对象内部的每个属性都具有相同的格式,我可以忽略那些内部对象的许多属性(我已经有一个POJO类可以对其建模)。如果JSON文件是数组而不是对象,则对我来说更容易解决此问题。 (我不是创建文件的人,只是从中读取文件。)
(我在下面发布我的解决方案,但我希望有更好的解决方案!)
答案 0 :(得分:0)
由于无法将原始文件加载到ObjectMapper中,我决定解析JSON文件并将其重写为数组。逐行读写,我转换了一个看起来像这样的文件(但更大):
{
"Unexpected Monkey" : {
"name" : "UnexpectedMonkey",
"age" : 7
},
"Another Unexpected Name" : {
"name" : "Another Unexpected Name",
"age" : 2
}
}
进入:
[
{
"name" : "UnexpectedMonkey",
"age" : 7
},
{
"name" : "Another Unexpected Name",
"age" : 2
}
]
然后我可以解析文件How to parse a JSON string to an array using Jackson