java 递归20210408-3

	private void insertCityInfo() {
		JSONArray jsonArray = GetCityCodeHttpUtil.getDistrictData1(COUNTRY);
		List<Map<?, ?>> list = this.convertJsonToMap(jsonArray, new ArrayList<Map<?, ?>>());
		for (Map<?, ?> map : list) {
			try {
				this.iSysCityInfoService.insertCityInfo(map);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * 递归调用
	 * 
	 * @param jsonArray
	 * @return
	 * @author ljj
	 */
	@SuppressWarnings({ "unchecked", "rawtypes" })
	private List<Map<?, ?>> convertJsonToMap(JSONArray jsonArray, List<Map<?, ?>> list) {
		if (!jsonArray.isEmpty()) {
			for (Iterator it = jsonArray.iterator(); it.hasNext();) {
				JSONObject jsonObject = (JSONObject) it.next();
				Map map = new HashMap();
				map.put("citycode", jsonObject.get("adcode"));
				map.put("qu", "[]".equals(jsonObject.get("citycode").toString()) ? "" : jsonObject.get("citycode"));
				map.put("lat", jsonObject.get("center").toString() == null ? ""
						: jsonObject.get("center").toString().split(",")[0]);
				map.put("lng", jsonObject.get("center").toString() == null ? ""
						: jsonObject.get("center").toString().split(",")[1]);
				switch (String.valueOf(jsonObject.get("level"))) {
				case "province":
					map.put("parentcode", COUNTRY_CODE);
					break;
				case "city":
					map.put("parentcode", jsonObject.get("adcode") == null ? ""
							: jsonObject.get("adcode").toString().substring(0, 2) + "0000");
					break;
				case "district":
					map.put("parentcode", jsonObject.get("adcode") == null ? ""
							: jsonObject.get("adcode").toString().substring(0, 4) + "00");
					break;
				case "street":
					map.put("parentcode", jsonObject.get("adcode"));
					break;
				}
				map.put("level", jsonObject.get("level"));
				map.put("cityName", jsonObject.get("name"));
				JSONArray jsonArray1 = (JSONArray) jsonObject.get("districts");
				if (!jsonArray1.isEmpty()) {
					convertJsonToMap(jsonArray1, list);
				}
				list.add(map);
			}

		}
		return list;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值