问题:最近工作中需要将一个将近两百页的pdf的base64作为value转成JSON字符串,而代码中使用的方案就是JSONObject.toJSONString(obj);
而结果就是引发了OOM内存溢出。
翻阅源码找到一段关键点:
也就是说FastJSON内部设置了一个阈值,只要处理的对象大于67M,就会直接抛出OOM异常。
解决方案:
使用其他工具例如jackSon
ObjectMapper mapper = new ObjectMapper();
//obj为要转为JSON字符串的对象
String json = mapper.writeValueAsString(obj);
看网上资料有介绍JSON的最大支持处理对象可以到达1G,通过配置可以实现。不过我这里目前没有找到设置方案,先草草结束了