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. 关于iOS刷新UI需要在主线程执行

    为什么一定要在主线程刷新UI? 安全+效率:因为UIKit框架不是线程安全的框架,当在多个线程进行UI操作,有可能出现资源抢夺,导致问题. 其实:在子线程是不能更新UI的, 看到能更新的结果只是个假象 ...

  2. python抓取网页数据处理后可视化

    抓取文章的链接,访问量保存到本地 #coding=utf-8 import requests as req import re import urllib from bs4 import Beauti ...

  3. selenium启动谷歌浏览器

    谷歌浏览器可以是任意版本. 根据谷歌浏览器的版本,下载响应的浏览器驱动(百度:谷歌驱动与谷歌浏览器版本映射表). 我用的是win7 ,下载win32就行了.下载解压之后可以放在python的安装目录下 ...

  4. hbase-运维命令

    hbase 问题 不一致问题 meta表不一致问题 hdfs文件不一致问题 hbase hbck hbase hbck 用于检测和修改hbase底层文件问题.检测像master,region serv ...

  5. 分析easyswoole3.0源码,协程连接池(五)

    连接池的含义,很多都知道,比如mysql的数据库连接是有限的,一开始连接mysql创建N个连接,放到一个容器里,每次有请求去容器中取出,取出用完再放回去. es3demo里,有mysql的连接池. E ...

  6. Thread类与Runnable接口的深入理解

    Thread类与Runnable接口的深入理解1.Thread类实现了Runnable接口,实现run方法,其中target参数对应的就是一个Runnable接口的实现类 @Override publ ...

  7. Saliency Detection via Graph-Based Manifold Ranking

    Saliency Detection via Graph-Based Manifold Ranking https://www.yuque.com/lart/papers 本文不是按照之前的论文那样, ...

  8. CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境

    我们一般常规的在Linux服务器中配置WEB系统会用到哪种WEB引擎呢?Apache还是比较常用的引擎之一.所以,我们在服务器中配置LAMP(Linux, Apache, MySQL, PHP)是我们 ...

  9. Electorn(桌面应用)自动化测试之Java+selenium实战例子

    基于electorn的桌面应用,网上相关资料较少.所有记录一下.使用java+selenium+testng对该类型应用的自动化测试方法. 代码样例 package com.contract.web. ...

  10. SQLPrompt 安装后sql上看不到菜单

    解决方案很简单,请使用管理员权限安装 破解也是一样,需要管理员权限运行