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

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

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

jackson 依赖的jar包:

 maven 依赖配置:

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

 

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

@Test
	public 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对象

@Test
	public 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();
		}
	}

 运行结果:

清河
黄威

 

项目源码见附件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值