1、先获取json树,强制类型转换成list<map>类型;
2、从省级list<map>取市级,并强制类型转换成list<map>类型;
3、从市级list<map>取县级,并强制类型转换成list<map>类型,根据gxqy的id找到对应记录,最终修改checked,为true 默认选中;
4、将修改好的县级list<map>强制类型转换成json,并保存至市级list<map>中;
5、将市级list<map>强制类型转换成json,并保存至省级list<map>中;
6、将省级list<map>强制类型转换成json,至此结束。

json 省级树  gxqy 县级id代码  checked true为选中,false为不选                      //代码中具体强转方法需在网上参考其他方法,不宜通用。本文章只是简单梳理过程

eclipse控制台展示json树内容:(例)

[{"id":"14","text":"山西省","children":[{"id":"1401","text":"太原市","children":[{"id":"140105","text":"小店区","leaf":true,"checked":false},{"id":"140106","text":"迎泽区","leaf":true,"checked":false},{"id":"140107","text":"杏花岭区","leaf":true,"checked":false}

String gxqy
String[] split = gxqy.split(",");

List<Map> list = (List<Map>) JsonUtil.getObjectFromJsonString(json); 
List<Map> list2 = (List<Map>) JsonUtil.getObjectFromJsonString(list.get(0).get("children").toString());
//循环市级取字符串
for (int i = 0, size = list2.size(); i < size; i++) {
  List<Map> list3 = (List<Map>) JsonUtil.getObjectFromJsonString(list2.get(i).get("children").toString());
  //循环县级取字符串
  for(int s = 0 ; s < list3.size() ; s++){
  //循环gxqy内容,循环取数
    for(int l = 0 ; l < split.length ; l ++){
      if(list3.get(s).get("id").equals(split[l])){
        list.get(0).put("checked", true);
        list2.get(i).put("checked", true);
        list3.get(s).put("checked", true);
      }
    }
    json3 = JsonUtil.getJson(list3);
  }
  list2.get(i).put("children",json3);
}
String json2 = JsonUtil.getJson(list2);

list.get(0).put("children",json2);
String jsonn = JsonUtil.getJson(list);

 

posted on 2018-05-09 16:21  小情调~  阅读(283)  评论(0)    收藏  举报