gpt4 book ai didi

java - Jackson 反序列化 JSON 对象时出现 OutOfMemoryError

转载 作者:行者123 更新时间:2023-12-02 04:43:31 26 4
gpt4 key购买 nike

我遇到一个非常大的 JSON 文件的问题,该文件太大而无法在 JsonNode 中使用 ObjectMapper.readValue() 。我想使用 Out of memory error while parsing a large JSON using Jackson library on Android 中的解决方案,但 JSON 文件是一个单个对象,其字段名称事先未知,因此我无法创建模型 POJO 来反序列化。

对象内的每个属性都具有相同的格式,并且我可以忽略这些内部对象的许多属性(我已经有一个 POJO 类来对其进行建模)。如果 JSON 文件是数组而不是对象,我会更容易解决这个问题。 (我不是创建该文件的人,只是从中读取内容。)

(我在下面发布我的解决方案,但我希望有更好的解决方案!)

最佳答案

由于无法在 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 一样解析该文件

关于java - Jackson 反序列化 JSON 对象时出现 OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56501063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com