示例代码
public static void main(String[] args) {//1. bean 和 json 互转
Person person = new Person("xiaoli",18);
String json = JacksonUtil.bean2json(person);
System.out.println(json);
Person person2 = (Person)JacksonUtil.json2bean(json, Person.class);
System.out.println(person2.toString());
//2. list 和 json 互转
List<Person> list = new ArrayList<Person>();
list.add(new Person("李四",10));
list.add(new Person("王五",20));
String listJson = JacksonUtil.list2json(list);
System.out.println(listJson);
List json2List = JacksonUtil.json2List(listJson);
System.out.println(json2List.toString());
//3. map 转 json
Map<String,Person> map = new HashMap<String,Person>();
map.put("map1",new Person("李四",10));
map.put("map2",new Person("王五",20));
String mapJson = JacksonUtil.map2json(map);
System.out.println(mapJson);
Map<Object, Object> map2 = JacksonUtil.json2Map(mapJson);
System.out.println(map2.toString());
//4. set 与 json 互转
Set<Person> set = new LinkedHashSet<Person>();
set.add(new Person("李四",10));
set.add(new Person("王五",20));
String setJson = JacksonUtil.set2json(set);
System.out.println(setJson);
Set set1 = JacksonUtil.json2Set(setJson);
System.out.println(set1.toString());
}
缺点
Jackson对于复杂类型的json转换bean会出现问题,一些集合Map,List的转换出现问题。
Jackson对于复杂类型的bean转换Json,转换的json格式不是标准的Json格式。
上面两个缺点有待考察,如有具体例子会进行更新。
小结:
Jackson 可以通过 ObjectMapper 的 writeValue() 和 readValue() 系列方法对 JSON 进行序列化和反序列化。并且擅长处理各种大量数据格式模块。
具体 Jackson 文章详见:https://www.cnblogs.com/cnjavahome/p/8393178.html
fastJson