ObjectMapper的用法 工具类
首先在pom.xml引入
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.3</version> </dependency>
定义JsonMapper工具类
public class JsonMapper {
private static ObjectMapper objectMapper = new ObjectMapper();
static {
//config
objectMapper.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);//设置在反序列化时忽略在JSON字符串中存在,而在Java中不存在的属性
objectMapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);//如果是空对象的时候,不抛异常
objectMapper.setFilters(new SimpleFilterProvider().setFailOnUnknownId(false));
objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_EMPTY);//属性为null的转换
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
}
/**
* 对象转String
* @param src
* @param <T>
* @return
*/
public static <T> String obj2String(T src){
if (null == src){
return null;
}
try {
return src instanceof String ? (String) src:objectMapper.writeValueAsString(src);
} catch (Exception e) {
return null;
}
}
public static <T> T string2Obj(String src, TypeReference<T> typeReference){
if(null == src || null == typeReference){
return null;
}
try {
return (T) (typeReference.getType().equals(String.class) ? src : objectMapper.readValue(src, typeReference));
} catch (Exception e){
return null;
}
}
}
测试类:
public static void main(String[] args) {
SysAcl acl = SysAcl.builder().id(1).name("测试").remark("ceshi").build();
String a = JsonMapper.obj2String(acl);
System.out.println(a);
SysAcl sysAcl = JsonMapper.string2Obj(a, new TypeReference<SysAcl>() {});
System.out.println(sysAcl.toString());
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2023-01-17 Springboot之OncePerRequestFilter 过滤器
2023-01-17 Spring的OncePerRequestFilter 过滤器