解决大对象toString导致的OOM fastJson中的toString发生OOM异常

项目场景:

在项目中,如果碰到大对象(一般指100M)以上的对象,用不管fastjson还是fastjson2中的toString都会可能导致OOM的存在,所有对大对象而言,可以使用以下的工具类


依赖和代码

java 复制代码
<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.12.0</version>
</dependency>
java 复制代码
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.json.JsonMapper;

public class BigObjToStrUtil {
    public static String bigObjToStr(Object obj) {
        JsonMapper jsonMapper = JsonMapper.builder()
                .build();
        String res = null;
        try {
            res = jsonMapper.writer()
                    .writeValueAsString(obj);
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e);
        }
        return res;
    }
}

原理:

就是利用的jsonMapper去实现的

相关推荐
better_liang40 分钟前
每日Java面试场景题知识点之-分布式事务处理
java·微服务·面试·springcloud·分布式事务
执笔论英雄1 小时前
Slime异步原理(单例设计模式)4
开发语言·python·设计模式
L***d6703 小时前
Spring Boot 各种事务操作实战(自动回滚、手动回滚、部分回滚)
java·数据库·spring boot
e***74953 小时前
Modbus报文详解
服务器·开发语言·php
凌波粒3 小时前
Springboot基础教程(3)--自动装配原理/静态资源处理/欢迎页
java·spring boot·后端
lly2024063 小时前
ASP 发送电子邮件详解
开发语言
小徐敲java3 小时前
python使用s7协议与plc进行数据通讯(HslCommunication模拟)
开发语言·python
likuolei3 小时前
XSL-FO 软件
java·开发语言·前端·数据库
凌波粒3 小时前
SpringBoot基础教程(2)--yaml/配置文件注入/数据校验/多环境配置
java·spring boot·后端·spring
6***37943 小时前
PHP在电商中的BigCommerce
开发语言·php