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-input框checkbox强制刷新

    在引用input框的checkbox属性时,选中后会出现数据已经刷新,checkbox选中状态不会改变.这时在事件触发后可以调用this.$forceUpdate(),强制刷新页面解决这个问题. in ...

  2. 11.20 正则表达式 断言(?=exp)

    今天看源代码,研究了一下qz写的这个方法: // 添加逗号分隔,返回为字符串 comma: function(length) { ) length = ; var source = ('' + thi ...

  3. BundleConfig某js文件 全部打包

    var server = HttpContext.Current.Server; var jsFiles = System.IO.Directory.GetFiles(server.MapPath(& ...

  4. Windows服务模式下tomcat开启远程调试

    测试环境:windows IDE:IDEA 2018 2.5 x64 按照图示,加以下参数加入配置中 -Xdebug -Xrunjdwp:transport=dt_socket,address=998 ...

  5. Synchronized和Lock的区别

    ①synchronized是jvm的关键字,Lock是Java类: ②synchronized会自动释放锁,而Lock需要在finally语句中主动释放锁,否则会造成死锁 ③用synchronized ...

  6. 谈谈逆向android里面的so

    1. 加密sgf算法分析 2.gnugo瘦身记

  7. Python语言学习之Python入门到进阶

    人们常说Python语言简单,编写简单程序时好像也确实如此.但实际上Python绝不简单,它也是一种很复杂的语言,其功能特征非常丰富,能支持多种编程风格,在几乎所有方面都能深度定制.要想用好Pytho ...

  8. 【aardio】]SQL创建、读写 excel

    import access; var db,err = access( "/test.xls" ) //文件不存在可自动创建 //创建表 if( ! db.existsTable( ...

  9. 关于jquery的选择器中的空格问题

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 主要的Ajax框架都有什么?

    *  Dojo(dojotoolkit.org):* Prototype和Scriptaculous (www.prototypejs.org和script.aculo.us):* Direct We ...