10人参与 • 2026-09-20 • Java
jackson 是一个用于 java 的高性能 json 处理库,它能够:
jackson 因其速度快、功能强大且易于使用而成为 java 生态中最流行的 json 处理库之一。
jackson 核心模块
这是基于 jackson 封装的 json 序列化/反序列化的工具,适用于项目内部的统一处理json,把对象转json字符串、json字符串转回java对象、json转list集合的工具类。
objectmapper 是 jackson 库的核心工具类,也是 springboot 默认集成的json 解析器。
核心功能:
public class jacksonutil {
private jacksonutil() {}
private static final objectmapper object_mapper;
static {
object_mapper = new objectmapper();
}
}object mapper 内部包含大量:序列化器缓存、反序列化缓存、类型工厂、注解解析器、配置信息
每次 new objectmapper() 都会重新加载所有配置、初始化缓存,非常消耗性能。
objectmapper 是线程安全的,全局只创建一个实例,多线程并发调用序列化、反序列化完全安全,所以项目中必须单例复用
package com.example.lotterysystem.common.utils;
import org.springframework.boot.json.jsonparseexception;
import org.springframework.util.reflectionutils;
import tools.jackson.core.jacksonexception;
import tools.jackson.databind.javatype;
import tools.jackson.databind.objectmapper;
import java.util.list;
import java.util.concurrent.callable;
public class jacksonutil {
private jacksonutil() {}
private static final objectmapper object_mapper;
static {
object_mapper = new objectmapper();
}
private static objectmapper getobjectmapper() {
return object_mapper;
}
private static <t> t tryparse(callable<t> parser) {
return tryparse(parser, jacksonexception.class);
}
private static <t> t tryparse(callable<t> parser, class<? extends exception> check) {
try {
return parser.call();
}
catch (exception ex) {
if (check.isassignablefrom(ex.getclass())) {
throw new jsonparseexception(ex);
}
throw new illegalstateexception(ex);
}
}
/**
* 序列化方法
* @param object
* @return
*/
public static string writervalueasstring(object object) {
return jacksonutil.tryparse(() -> {
return jacksonutil.getobjectmapper().writevalueasstring(object);
});
}
/**
* 反序列化方法
* @param str
* @param type
* @return
* @param <t>
*/
public static <t> t readvalue(string str, class<t> type) {
return jacksonutil.tryparse(() -> {
return jacksonutil.getobjectmapper().readvalue(str, type);
});
}
/**
* 反序列化list
*/
public static <t> t readlistvalue(string context, class<?> paramclasses) {
javatype javatype = jacksonutil.getobjectmapper().gettypefactory()
.constructparametrictype(list.class, paramclasses);
return jacksonutil.tryparse(() -> {
return jacksonutil.getobjectmapper().readvalue(context, javatype);
});
}
}到此这篇关于java 项目jckson序列化工具详解的文章就介绍到这了,更多相关java jckson序列化工具内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论