Spring JSON反序列化字符限制

时间:2015-03-03 06:56:23

标签: java json spring deserialization

我试图了解Spring框架将反序列化为对象的JSON数量是否有限制。

我的REST服务接收POST请求,其中正文是JSON字符串。这由Spring框架(3.2.5)自动反序列化为对象,并且该对象作为方法参数提供。对象的一个​​属性是数组。我想在我的文档中提供一些关于调用者可以包含在对象中的最大数组元素数量的指导。

我知道.NET框架对JSON字符串的大小有可配置的限制,但我不知道Spring中有类似的东西。我的开发服务器目前正在处理一个包含100,000个元素(大约8,000,000个字符)的请求,但它还没有爆炸。

任何想法都非常感激!

1 个答案:

答案 0 :(得分:1)

这取决于很多方面,包括

  • 您的基础JSON反序列化所施加的任何特定限制。很可能你正在使用Jackson,我没有任何限制
  • 容器特定限制,您没有提到您正在使用的容器,但是例如Tomcat有maxPostSize
  • 前端Web服务器限制,假设例如tomcat在apache后面。 Apache有一个LimitRequestBody属性。
  • 内存,特别是用于将String解析为对象的堆大小
  • 时间,反序列化的边缘情况需要很长时间才能使HTTP请求与客户端超时。

您首先遇到的最可能的限制是容器特定的限制。我建议使用容器/前端代理配置来设置合理的限制,以保护自己免受恶意客户的侵害。