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);
相關文章
相關標籤/搜索