json转map方法

json转map方法
Map<String,CityPo> map = new HashMap<String,CityPo>();
 CityPo po = new CityPo();
 po.setBuildCfgID(123);
 po.setCurHp(456);
 Hero hero = new Hero();
 hero.setStrAge("11");
 hero.setStrName("strName");
 po.setHero(hero);
   map.put( "name",po);   
 JSONObject json = JSONObject.fromObject( map ); //将map转成json
  Map tmp = (Map)JSONObject.toBean(json, Map.class); //将json转回map
  但是转回的map是Map<String,Object>的,有没有办法转成Map<String, CityPo>

ps: Map tmp = (Map)JSONObject.toBean(json, Map.class); 其中的Map.class为什么不让设Map<String,CityPo>.class?

------解决方案--------------------------------------------------------
 Java codeCityPo po = new CityPo();
    po.setBuildCfgID(123);
    po.setCurHp(456);
    Hero hero = new Hero();
    hero.setStrAge("11");
    hero.setStrName("strName");
    po.setHero(hero);
    map.put("name", po);
    JSONObject json = JSONObject.fromObject(po); // 将map转成json
    CityPo poo = (CityPo) JSONObject.toBean(json, CityPo.class);
    System.out.println(poo);
------解决方案--------------------------------------------------------我这边有个JAR包可以带泛型转org.codehaus.jackson.map.ObjectMapper自己从网上下,用法如下:Java codeObjectMapper mapper = new ObjectMapper();
Map<String, CityPo> tmp = mapper.readValue(json, new TypeReference<Map<String, CityPo>>() {});
------解决方案--------------------------------------------------------JAR包名是:jackson,有两部分,一个是jackson-core-asl,一个是jackson-mapper-asl
------解决方案--------------------------------------------------------
Map tmp = (Map)JSONObject.toBean(json, Map.class);  改成Map<String,CityPo> tmp = (Map<String,CityPo>)JSONObject.toBean(json, Map.class);

转载于:https://my.oschina.net/u/175660/blog/80164

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值