FastJSON将对象转JSON字符串引发的血案
·
问题:最近工作中需要将一个将近两百页的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,通过配置可以实现。不过我这里目前没有找到设置方案,先草草结束了
新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。
更多推荐

所有评论(0)