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);