java - Jackson 反序列化最大深度级别
问题描述
使用Spring Boot应用程序,我发布了带有10000 个嵌套元素的 JSON ,如下图所示,并得到了java.lang.StackOverflowError
.
{
"__id": "1",
"__category":{
"key1": {
"key2": {
"key3": {
...
...
"key10000": "value"
...
...
}
}
}
}
}
有什么方法可以使这个错误更易于管理?
我的意思是,我不想避免这个错误,而是做一些类似自定义反序列化器的事情来设置一个允许嵌套的值,如果超过这个值就会抛出一些异常。
解决方案
您可以尝试使用Jackson Streaming API而不必一次反序列化整个事情。这是处理大型 JSON 对象或数组时推荐的方法。
这允许您单独反序列化和处理组件,而不需要整个 JSON 对象存在于内存中。