@GetMapping("getCityList") public AjaxResult getCityList() throws Exception { // 腾讯地图获取所有城市链接 JSONObject str = HttpsClient.sendGet("https://apis.map.qq.com/ws/district/v1/list?key=H3OBZ-47M6W-COSRA-RZBH2-VWXSJ-ZLBSA",null); JSONArray map = (JSONArray) str.get("result"); // 生成sql StringBuilder sqlStr = new StringBuilder("insert into cc_tx_city(name,full_name,code,pinyin,lng,lat,parent_code) values "); // 获取省份 JSONArray province = (JSONArray) map.get(0); // 获取城市 JSONArray city = (JSONArray) map.get(1); // 获取区县 JSONArray county = (JSONArray) map.get(2); JSONArray jsonArray = new JSONArray(); // 给城市设置父级省份code city.forEach(itemc->{ // 遍历的当前城市信息 JSONObject c = (JSONObject) itemc; // 获取城市code前两位 String prefix = c.get("id").toString().substring(0,2); province.forEach(itemp ->{ // 遍历省份 JSONObject p = (JSONObject) itemp; // 省份设置父级code为0 ((JSONObject) itemp).put("parentCode","0"); p.put("parentCode","0"); // 获取省份的前两位 String p2 = p.get("id").toString().substring(0,2); // 校验省份前缀和城市前缀是否一致 if (prefix .equals(p2) ) { // 一致设置城市前缀为省份code ((JSONObject) itemc).put("parentCode",((JSONObject) itemp).get("id").toString()); } }); }); // 给区县设置父级城市code county.forEach(items->{ // 遍历的当前区县信息 JSONObject s = (JSONObject) items; // 获取当前区县信息 String prefix = s.get("id").toString().substring(0,4); city.forEach(itemc ->{ // 遍历城市 JSONObject p = (JSONObject) itemc; // 获取城市的前四位 String preCode = p.get("id").toString().substring(0,4); // 校验区县前缀和城市前缀是否一致 if (prefix.equals(preCode)) { ((JSONObject) items).put("parentCode",p.get("id").toString()); } }); }); jsonArray.addAll(province); jsonArray.addAll(city); jsonArray.addAll(county); for (int j = 0;j <jsonArray.size();j++) { JSONObject jsonObject = jsonArray.getJSONObject(j); String fullName = jsonObject.get("fullname").toString(); String code = jsonObject.get("id").toString(); String name = jsonObject.get("name") != null?jsonObject.get("name").toString():""; String pinyin = jsonObject.get("pinyin") != null? jsonObject.get("pinyin").toString():""; JSONObject location = jsonObject.getJSONObject("location"); String lat = location.getString("lat"); String lng = location.getString("lng"); String parentCode = jsonObject.getString("parentCode"); String lastStr = "( '"+name+"','"+fullName+"','" +code +"','"+pinyin+"','"+lng+"','" +lat +"','"+parentCode +"'),"; sqlStr.append(lastStr); } return AjaxResult.success(sqlStr.toString()); }
将腾讯地图API中的省市区列表解析成sql文本
最新推荐文章于 2024-05-08 12:42:46 发布