1.序列化与反序列化封装

 private static final Logger logger = LoggerFactory.getLogger(JsonUtil.class);

    /**
* Object对象转换为String
*
* @param data Object对象
* @return Object对象对应的字符串
*/
public static <T> String toJsonString(T data) {
try {
ObjectMapper om = new ObjectMapper();
return om.writeValueAsString(data);
} catch (JsonProcessingException ex) {
if (logger.isErrorEnabled()) {
logger.error("json parse error:", ex);
}
return "json parse error:" + ex.getMessage();
}
} /**
* 字符串转换为对象
*
* @param json 字符串
* @param clazz 类类型
* @return clazz类型的对象
*/
public static <R> R json2Object(String json, Class<R> clazz) {
try {
ObjectMapper om = new ObjectMapper();
return om.readValue(json, clazz);
} catch (Exception ex) {
if (logger.isErrorEnabled()) {
logger.error("json parse error:", ex);
}
}
return null;
} /**
* 字节转换为对象
*
* @param jsonBuffer 字节
* @param clazz 类类型
* @return clazz类型的对象
*/
public static <R> R json2Object(byte[] jsonBuffer, Class<R> clazz) {
try {
ObjectMapper om = new ObjectMapper();
return om.readValue(jsonBuffer, clazz);
} catch (Exception ex) {
if (logger.isErrorEnabled()) {
logger.error("json parse error:", ex);
}
}
return null; } /**
* 字符串转换为对象数组
*
* @param json 字符串
* @param clazz 类类型
* @return clazz类型的对象数组
*/
public static <T> List<T> json2List(String json, Class<T> clazz) {
List<T> list = null;
try {
ObjectMapper mapper = new ObjectMapper();
TypeReference<List<T>> typeRef = new TypeReference<List<T>>() {
@Override
public Type getType() {
return new ParameterizedType() {
@Override
public Type[] getActualTypeArguments() {
return new Type[]{clazz};
}
@Override
public Type getRawType() {
return List.class;
}
@Override
public Type getOwnerType() {
return null;
}
};
}
};
list = mapper.readValue(json, typeRef);
} catch (Exception ex) {
if (logger.isErrorEnabled()) {
logger.error("json parse error:", ex);
}
}
return list;
}

2.自定义jackson

https://blog.csdn.net/weixin_35772453/article/details/69666225

jackson 用法总结的更多相关文章

  1. jackson用法

    ObjectMapper mapper=new ObjectMapper(); //3.调用mapper的writeValueAsString()方法把一个对象或集合转为json字符串 Custome ...

  2. json-lib与Jackson的区别和用法分析

    一.Jackson概述 1.jackson包和版本 Jackson fasterxml和codehaus的区别: 他们是Jackson的两大分支.也是两个版本的不同包名.Jackson从2.0开始改用 ...

  3. 常见Java库漏洞汇总

    1.ActiveMQ 反序列化漏洞(CVE-2015-5254) ref:https://www.nanoxika.com/?p=408 Apache ActiveMQ是美国阿帕奇(Apache)软件 ...

  4. Java对象的序列化与反序列化-Json篇

    说到Java对象的序列化与反序列化,我们首先想到的应该是Java的Serializable接口,这玩意在两个系统之间的DTO对象里面可能会用到,用于系统之间的数据传输.或者在RPC(远程方法调用)时可 ...

  5. Jackson的简单用法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1简介 Jackson具有比较高的序列化和反序列化效率,据测试,无论是 ...

  6. Jackson最简单用法

    jackson的包在:https://yunpan.cn/cu2b6eMaBjFpz  访问密码 753f 代码: ObjectMapper objectMapper = new ObjectMapp ...

  7. Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明

    https://www.sojson.com/blog/246.html ******************************************** Jackson  是  Spring ...

  8. Jackson的用法实例分析

    这篇文章主要介绍了Jackson的用法实例分析,用于处理Java的json格式数据非常实用,需要的朋友可以参考下 通俗的来说,Jackson是一个 Java 用来处理 JSON 格式数据的类库,其性能 ...

  9. JSON数据处理框架Jackson精解第一篇-序列化与反序列化核心用法

    Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制.它提供了很 ...

随机推荐

  1. vue-实现全选单选

    在获取列表页面数据时,通过forEach遍历存储数据的对象,给对象中添加一个selected变量,值为布尔值. 点击全选时,通过遍历将对象中selected的布尔值改变 点击单选时,被点中的通过筛选加 ...

  2. 正向与反向拓扑排序的区别(hdu 1285 确定比赛名次和hdu 4857 逃生)

    确定比赛名次 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...

  3. Linux-Centon7安装以及配置

    环境:MacOS 10.13.6 虚拟机:VirtualBox6.0(VirtualBox-6.0.4-128413-OSX.dmg) Linux:Centos7(CentOS-7-x86_64-Mi ...

  4. anaconda使用方法

    我是用的win10.想写爬虫,所以使用了  anaconda .总结一下使用的方法. 安装阶段跳过.: 再终端输入  jupyter notebook  然后就会在. 浏览器显示一个网页.其实这个也不 ...

  5. python 打开浏览器的方法 Python打开默认浏览器

    一.python 打开浏览器的方法: . startfile方法(打开指定浏览器) import os os.startfile("C:\Program Files\internet exp ...

  6. java之servlet学习基础(一)

    这一阵子在学java三大框架.却在学习过程中发现前面的知识已经忘记了.所以决定写一篇博客来总结回顾之前的学习. 1.Servlet是什么? servlet是一个运行在服务器端的小应用程序.通过HTTP ...

  7. centos 上docker 运行出现/bin/sh: . not found

    本人用的是Linux上的编译的....然后用了win上的编译命令 解决办法 : 用Linux上的编译命令.....    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 g ...

  8. [基础篇] 01_MySQL的安装与配置

  9. Matting任务里的Gradient与Connectivity指标

    Matting任务里的Gradient与Connectivity指标 主要背景 Matting任务就是把α(不透明度, 也就是像素属于前景的概率).F(前景色)和B(背景色)三个变量给解出来. C为图 ...

  10. MySQL语法大全_自己整理的学习笔记(MySQL语句 整理二)

    select * from emp; #注释 #--------------------------- #----命令行连接MySql--------- #启动mysql服务器 net start m ...