java 模型转map_用jackson包实现json、对象、Map之间的转换

package test;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.HashSet;

import java.util.List;

import java.util.Map;

import java.util.Set;

import org.codehaus.jackson.JsonGenerationException;

import org.codehaus.jackson.map.JsonMappingException;

import org.codehaus.jackson.map.ObjectMapper;

/**

* Description: 主要用于测试学习用jackson包实现json、对象、Map之间的转换

*

* Date: 2016年6月6日

* Time: 下午3:23:23

*/

public class JsonTest

{

public static void main(String[] args) throws JsonGenerationException, JsonMappingException, IOException

{

User user=new User();

user.setId("01");

user.setName("张三");

user.setAge(33);

user.setPay(6666.88);

user.setValid(true);

user.setOne('E');

user.setBirthday(new Date(20l*366*24*3600*1000)); //1990年

Link link = new Link();

link.setAddress("河南省济源市");

link.setPhone("13899995555");

link.setQq("123456");

user.setLink(link);

Map map=new HashMap();

map.put("aa", "this is aa");

map.put("bb", "this is bb");

map.put("cc", "this is cc");

user.setMap(map);

List list=new ArrayList(){};

list.add("普洱");

list.add("大红袍");

user.setList(list);

Set set=new HashSet();

set.add("篮球");

set.add("足球");

set.add("乒乓球");

user.setSet(set);

ObjectMapper mapper = new ObjectMapper(); //转换器

//测试01:对象--json

String json=mapper.writeValueAsString(user); //将对象转换成json

System.out.println(json);

/* 结果如下:

{"id":"01","name":"张三","age":33,"pay":6666.88,"valid":true,"one":"E","birthday":1465185448998,

"link":{"phone":"13899995555","address":"河南省济源市","qq":"123456"},

"map":{"aa":"this is aa","bb":"this is bb","cc":"this is cc"},

"list":["普洱","大红袍"],

"set":["乒乓球","足球","篮球"]}

注意点:(1) 日期--长整型 (2)List、Set均转成数组

*/

//测试02:json--map

Map m = mapper.readValue(json, Map.class); //json转换成map

System.out.println("pay:"+m.get("pay").getClass().getName()); //java.lang.Double

System.out.println("valid:"+m.get("valid").getClass().getName()); //java.lang.Boolean

System.out.println("birthday:"+m.get("birthday").getClass().getName()); //java.lang.Long

System.out.println("link:"+m.get("link").getClass().getName()); //java.util.LinkedHashMap

System.out.println("map:"+m.get("map").getClass().getName()); //java.util.LinkedHashMap

System.out.println("list:"+m.get("list").getClass().getName()); //java.util.ArrayList

System.out.println("set:"+m.get("set").getClass().getName()); //java.util.ArrayList

/*  结果如下:

pay:java.lang.Double

valid:java.lang.Boolean

birthday:java.lang.Long

link:java.util.LinkedHashMap

map:java.util.LinkedHashMap

list:java.util.ArrayList

set:java.util.ArrayList

注意点:(1) 日期--长整型  (2)map、子对象均转换成了LinkedHashMap (3)List、Set均转成ArrayList

*/

//测试03:map--json

json=mapper.writeValueAsString(m); //map转json

System.out.println(json); //与之前格式完全相同,说明经过map转换后,信息没有丢失

//测试04:json--对象

User u=mapper.readValue(json, User.class); //json转java对象。经测,转成对象后,一切恢复正常

System.out.println("pay:"+u.getPay());

System.out.println("valid:"+u.isValid());

System.out.println("birthday:"+u.getBirthday());

System.out.println("link:"+u.getLink());

System.out.println("map:"+u.getMap());

System.out.println("list:"+u.getList());

System.out.println("set:"+u.getSet());

//测试05:其他转换

byte[] data=mapper.writeValueAsBytes(u); //对象转成二进制数组

}

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值