【发布时间】:2021-11-16 14:14:50
【问题描述】:
我有一个大约 300 MB 的大型 JSON 文件,我正在使用 Jackson 对象映射器对其进行解析:-
private void parseJson(Object obj) {
ObjectMapper map = new ObjectMapper();
Map<String,List<POJOClass>> result = new HashMap<>();
String str = map.writeValueAsString(obj);
map.registerModule(new JSR10module());
result = map.readValue(new ByteInputStream(str.getBytes(StandardCharSets.UTF_8)),
new TypeReference<Map<String,List<POJOClass>>>
() {});
}
parseJson 的参数是一个包含 JSON 字符串的对象。
这适用于大约 150 MB 的 JSON 文件,但是,当 JSON 文件大约 250-300 MB 时,它开始以Heap Space error 失败。我正在使用jackson 2.4.0
【问题讨论】:
-
数据映射中有多少条目?一个字符串键和所有 POJOClass 的列表?还是具有多个 POJOClass 列表的多个键?
-
具有多个 POJOClass 列表的多个键。
标签: java json jackson json-deserialization jackson2