首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

使用jackson-地图per-lgpl序列化和反序列化

2014-01-03 
使用jackson-mapper-lgpl序列化和反序列化在前面的博客中说明了json-lib如何序列化和反序列化。现在说明下j

使用jackson-mapper-lgpl序列化和反序列化

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

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

jackson 依赖的jar包:
使用jackson-地图per-lgpl序列化和反序列化
?maven 依赖配置:

<!-- Json转化模块 --><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-lgpl</artifactId><version>1.9.9</version></dependency>

?

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

@Testpublic void test_serialize2(){ObjectMapper mapper = new ObjectMapper();Class2 c=new Class2();List<Student>students=new ArrayList<Student>();Student student=new Student();Map<String, Object> attribute =new HashMap<String, Object>();attribute.put("p1", "v1");attribute.put("p2", "v2");student.setAttribute(attribute);students.add(student);student.setName("黄威");student.setHobby("Roller-Skating");c.setStudents(students);c.setClassName("计算机0705");String content;try {content = mapper.writeValueAsString(student);System.out.println(content);} catch (JsonGenerationException e) {e.printStackTrace();} catch (JsonMappingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}

?运行结果:

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

?

?

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

@Testpublic void test_reserialize(){String jsonInput = "{"addrr":{"country":"中国","state":"湖北省","street":"清河"},"age":25,"hobby":"","name":"黄威"}";ObjectMapper mapper = new ObjectMapper();Student student;try {student = mapper.readValue(jsonInput, Student.class);System.out.println(student.getAddrr().getStreet());System.out.println(student.getName());} catch (Exception e) {e.printStackTrace();}}

?运行结果:

清河黄威

?

项目源码见附件

热点排行