现在的位置: 首页 > 综合 > 正文

jackson-mapper-lgpl

2019年03月13日 ⁄ 综合 ⁄ 共 2181字 ⁄ 字号 评论关闭

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

jackson 官网:http://jackson.codehaus.org/

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对象,即把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. 黄威  

 

项目源码见附件

【上篇】
【下篇】

抱歉!评论已关闭.