杰克逊反序列化最大深度级别

时间:2018-11-16 17:46:05

标签: java json spring serialization jackson

使用 Spring Boot 应用程序,我发布了带有 10000个嵌套元素的JSON,例如下面的元素,并得到了java.lang.StackOverflowError

{
"__id": "1",
"__category":{
      "key1": {
        "key2": {
            "key3": {
                ...
                ...
                "key10000": "value"
                ...
                ...
            }
        }
      }
    }
}

有什么办法可以使此错误更易于管理?

我的意思是,我不想避免此错误,但是可以执行类似自定义反序列化程序的操作来设置允许的嵌套值,并在超出该值时抛出一些异常。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Jackson Streaming API而不是立即对整个序列进行反序列化。在处理大型JSON对象或数组时,这是推荐的方法。

这使您可以分别反序列化和处理组件,而无需整个JSON对象存在于内存中。