博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用jackson-mapper-lgpl序列化和反序列化
阅读量:7120 次
发布时间:2019-06-28

本文共 1644 字,大约阅读时间需要 5 分钟。

在前面的博客中说明了json-lib如何序列化和反序列化。现在说明下jackson-mapper-lgpl (以下简称jackson)的用法。

jackson 官网:

jackson 依赖的jar包:

 maven 依赖配置:

Xml代码  
  1. <!-- Json转化模块 -->  
  2.         <dependency>  
  3.             <groupId>org.codehaus.jackson</groupId>  
  4.             <artifactId>jackson-mapper-lgpl</artifactId>  
  5.             <version>1.9.9</version>  
  6.         </dependency>  

 

使用jackson 序列化对象,即把java对象转化json 字符串

Java代码  
  1. @Test  
  2.     public void test_serialize2(){  
  3.         ObjectMapper mapper = new ObjectMapper();  
  4.         Class2 c=new Class2();  
  5.         List<Student>students=new ArrayList<Student>();  
  6.         Student student=new Student();  
  7.         Map<String, Object> attribute =new HashMap<String, Object>();  
  8.         attribute.put("p1""v1");  
  9.         attribute.put("p2""v2");  
  10.         student.setAttribute(attribute);  
  11.         students.add(student);  
  12.         student.setName("黄威");  
  13.         student.setHobby("Roller-Skating");  
  14.         c.setStudents(students);  
  15.         c.setClassName("计算机0705");  
  16.           
  17.         String content;  
  18.         try {  
  19.             content = mapper.writeValueAsString(student);  
  20.             System.out.println(content);  
  21.         } catch (JsonGenerationException e) {  
  22.             e.printStackTrace();  
  23.         } catch (JsonMappingException e) {  
  24.             e.printStackTrace();  
  25.         } catch (IOException e) {  
  26.             e.printStackTrace();  
  27.         }  

 运行结果:

{"addrr":null,"age":0,"name":"黄威","hobby":"Roller-Skating","attribute":{"p2":"v2","p1":"v1"}}

 

 

使用jackson 反序列化,即把json字符串或inputstream 还原为java对象

Java代码  
  1. @Test  
  2.     public void test_reserialize(){  
  3.         String jsonInput = "{\"addrr\":{\"country\":\"中国\",\"state\":\"湖北省\",\"street\":\"清河\"},\"age\":25,\"hobby\":\"\",\"name\":\"黄威\"}";  
  4.         ObjectMapper mapper = new ObjectMapper();  
  5.         Student student;  
  6.         try {  
  7.             student = mapper.readValue(jsonInput, Student.class);  
  8.             System.out.println(student.getAddrr().getStreet());  
  9.             System.out.println(student.getName());  
  10.         } catch (Exception e) {  
  11.             e.printStackTrace();  
  12.         }  
  13.     }  

 运行结果:

Java代码  
  1. 清河  
  2. 黄威  

转载地址:http://nwdel.baihongyu.com/

你可能感兴趣的文章
数据库设计中的9大常见错误
查看>>
柔性自动化在物流的应用及探索
查看>>
微软最具价值技术专家:我的16年软件开发经验总结
查看>>
腾讯云+未来高峰对话:智能+时代的创新与探索
查看>>
实现TeX的算法:回首编程技术的过去三十年
查看>>
又拍云CDN再出力作,三驾马车为视频护航
查看>>
Java RESTful Web Service实战
查看>>
详解分布式系统本质:“分治”和“冗余”
查看>>
[译]Yarn:一个新的JavaScript包管理器
查看>>
实用的IT类网站及工具大集合
查看>>
tomcat的servlet读取请求参数
查看>>
yii2项目实战之配置
查看>>
SICP Python 描述 1.5 控制
查看>>
菜鸟排查数据库异常的事
查看>>
Android Studio 3.5 Canary 12 发布
查看>>
【视频教程】微信小程序开发【一个实例】
查看>>
Rails 5.2.3 RC1 发布,Ruby Web 应用开发框架
查看>>
Redux源码分析之基本概念
查看>>
ubuntu(14.04) 网路管理
查看>>
Maven在Eclipse中的实用小技巧
查看>>