项目场景:
在项目中,如果碰到大对象(一般指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去实现的