Json工具类--使用2.x版本的Jackson实现了Json的序列化和反序列化
来源:互联网 发布:网络安全技术保障方案 编辑:程序博客网 时间:2024/06/08 08:43
简介:使用2.x版本的Jackson(com.fasterxml.jackson包)实现了Json的序列化和反序列化!
1.工具类代码:
import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.ObjectMapper;import java.io.Serializable;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;/** * Created by admin on 2017/9/30. * 使用2.x版本的Jackson(com.fasterxml.jackson包)实现了Json的序列化和反序列化 */public class TestJackson2 { public static final ObjectMapper OM = new ObjectMapper(); static{ /** * 设置将时间转换成指定的格式 */ OM.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); } public static void main(String[] args) { Person person = new Person(); person.setBirthday(new Date()); String s1 = toJson(person,new SimpleDateFormat("yyyy年MM月dd日")); System.out.println(s1); Person person1 = fromJson(s1, Person.class,new SimpleDateFormat("yyyy年MM月dd日")); System.out.println(person1); } /** * 将Json串反序列化为ArrayList集合 * @param json * @param object * @param <T> * @return */ public static <T> ArrayList<T> readValuesAsArrayList(String json, Class<T> object) { try { return OM.readValue(json, OM.getTypeFactory().constructParametricType(ArrayList.class, object)); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 将Json串反序列化为ArrayList集合 * @param json * @param t * @param <T> * @return */ public static <T> ArrayList<T> readValuesAsArrayList(String json, TypeReference<ArrayList<T>> t) { try { return OM.readValue(json, t); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 将对象序列化为Json串 * @param obj * @return */ public static String toJson(Object obj){ try { return OM.writeValueAsString(obj); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 将对象序列化为Json串,可以指定日期格式 * @param obj * @param sdf * @return */ public static String toJson(Object obj,SimpleDateFormat sdf){ try { OM.setDateFormat(sdf); String result = OM.writeValueAsString(obj); OM.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); return result; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 将Json串反序列化成对象 * @param json * @param clazz * @param <T> * @return */ public static <T> T fromJson(String json, Class<T> clazz){ try { return OM.readValue(json, clazz); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 将Json串反序列化成对象,可以指定日期格式 * @param json * @param clazz * @param sdf * @param <T> * @return */ public static <T> T fromJson(String json, Class<T> clazz,SimpleDateFormat sdf){ try { OM.setDateFormat(sdf); T t = OM.readValue(json, clazz); OM.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); return t; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 测试对象Person */ public static class Person implements Serializable { private String name; private Integer age; //@JsonFormat(pattern = "yyyy-MM-dd") private Date birthday; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ", birthday=" + birthday + '}'; } }}
阅读全文
0 0
- Json工具类--使用2.x版本的Jackson实现了Json的序列化和反序列化
- Json工具类--使用1.x版本Jackson实现json的序列化和反序列化
- Json工具类--使用Gson实现了Json的序列化和反序列化
- Json工具类--使用json-lib实现json的序列化和反序列化
- Jackson实现json的序列化反序列化
- json - 使用jackson进行序列化/反序列化
- Json序列化和反序列化之jackson
- jackson进行json序列化和反序列化
- jackson的序列化和反序列化的实现
- 使用json-lib完成json的序列化和反序列化
- 使用json-lib完成json的序列化和反序列化
- ASP.NET:使用Newtonsoft.Json序列化和反序列化JSON对象的例子
- jackson (json、xml的序列化与反序列化)
- JSON和plist的序列化和反序列化
- json-jackson多子类继承的反序列化
- JSON的序列化和反序列化
- c#中的Json的序列化和反序列化
- .NET进行Json的序列化和反序列化
- 排序算法—选择排序
- 如何通过Mysql的二进制日志恢复数据库数据
- Zyoung
- 内容提供者——读取短信
- C语言宏定义和函数的异同
- Json工具类--使用2.x版本的Jackson实现了Json的序列化和反序列化
- 两数之和
- 10:矩阵转置
- 检测内存泄漏常用工具之Leakcanary
- 排序算法—冒泡排序
- WebViews管理者
- 一款树形表格的插件TreeGrid
- Linux下C++的通用Makefile与解析
- BZOJ 2257: [Jsoi2009]瓶子和燃料 数论