递归调用
public static Map<String,Area> getAreaMap(Map<Object, Object> map)
Map<String,Area> areaMap = new HashMap<>();
Set<Object> keySet = map.keySet();
for (Object k:keySet) {
Area area = null;
Object v = map.get(k);
if(v instanceof Area){
area = (Area) v;//System.out.println("Area对象");
}else {
String vS = v.toString();
area = JSONObject.parseObject(vS,Area.class);
}
areaMap.put(k.toString(),area);
Map children = area.getChildren();
Map<String,Area> areaMap2 = getAreaMap(children);
area.setChildren(areaMap2);
}
return areaMap;
}
Area
package com.entity;
import java.util.HashMap;
import java.util.Map;
public class Area {
String key;
String value;
Map<String,Area> children = new HashMap<>();
public String getKey(){
return key;
}
public void setKey(String key){
this.key = key;
}
public String getValue(){
return value;
}
public void setValue(String value){
this.value = value;
}
public Map<String,Area> getChildren(){
return children;
}
public void setChildren(Map<String,Area> children){
this.children = children;
}
@Override
public String toString() {
return "Area{" +
"key='" + key + '\'' +
", value='" + value + '\'' +
", children=" + children +
'}';
}
}
json数据
"110000":{
"key":"110000",
"value":"北京市",
"children":{
"110100":{
"key":"110100",
"value":"北京市",
"children":{
"110101":{
"key":"110101",
"value":"东城区"
},
"110102":{
"key":"110102",
"value":"西城区"
},
"110105":{
"key":"110105",
"value":"朝阳区"
},
"110106":{
"key":"110106",
"value":"丰台区"
},
"110107":{
"key":"110107",
"value":"石景山区"
},
"110108":{
"key":"110108",
"value":"海淀区"
},
"110109":{
"key":"110109",
"value":"门头沟区"
},
"110111":{
"key":"110111",
"value":"房山区"
},
"110112":{
"key":"110112",
"value":"通州区"
},
"110113":{
"key":"110113",
"value":"顺义区"
},
"110114":{
"key":"110114",
"value":"昌平区"
},
"110115":{
"key":"110115",
"value":"大兴区"
},
"110116":{
"key":"110116",
"value":"怀柔区"
},
"110117":{
"key":"110117",
"value":"平谷区"
},
"110118":{
"key":"110118",
"value":"密云区"
},
"110119":{
"key":"110119",
"value":"延庆区"
}
}
}
}
}
pom
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.70</version>
</dependency>