数据库获取map数据后转化成json格式的数据

本文介绍了一种从数据库中查询省市县数据并将其转换为特定JSON格式的方法。通过两次左外连接获取数据,并使用Java代码将这些数据组织成易于使用的JSON格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请点击http://106.12.206.16:8080/qingruihappy/index.html

一,从数据库查出来的数据

两张表先各自左外连接,然后在相互左外连接查找省市县的数据(业务需求必须这样做,省市去的是第一张表,而市县取的是第二张表,两张表中间通过市的名字连接)见这个博文的最后一张图片

二,要求的json格式的数据

json省市县数据源

三,实现的关键代码

 1  public String queryFullZoneInfo() {
 2         List<Map<String, String>> mapList = zoneInfoService.queryFullZoneInfo();
 3         List<Map<String, Object>> zoneList = new ArrayList<Map<String, Object>>();
 4         Map<String, Object> existMap = new HashMap<String, Object>();
 5         for (Map<String, String> map : mapList) {
 6             String province = map.get("province");
 7             Map<String, Object> provinceMap = null;
 8             if (existMap.containsKey(province)) {
 9                 provinceMap = (Map<String, Object>) existMap.get(province);
10             } else {
11                 provinceMap = new HashMap<String, Object>();
12                 existMap.put(province, provinceMap);
13                 zoneList.add(provinceMap);
14             }
15             
16             provinceMap.put("Code", map.get("provinceCode"));
17             provinceMap.put("Name", map.get("province"));
18             String city = map.get("city");
19             if (StringUtils.isNotEmpty(city)) {
20                 List<Map<String, Object>> provinceCityList = null;
21                 if (existMap.containsKey(province + "_")) {
22                     provinceCityList = (List<Map<String, Object>>) existMap.get(province + "_");
23                 } else {
24                     provinceCityList = new ArrayList<Map<String, Object>>();
25                     existMap.put(province + "_", provinceCityList);
26                     provinceMap.put("level", provinceCityList);
27                 }
28                 Map<String, Object> provinceCityMap = null;
29                 if (existMap.containsKey(province + "_" + city)) {
30                     provinceCityMap = (Map<String, Object>) existMap.get(province + "_" + city);
31                 } else {
32                     provinceCityMap = new HashMap<String, Object>();
33                     existMap.put(province + "_" + city, provinceCityMap);
34                     provinceCityList.add(provinceCityMap);
35                     String citySort = String.valueOf(existMap.get(province + "_sort"));
36                     existMap.put(province + "_sort", "null".equals(citySort) ? 1 : NumberUtils.toInt(citySort) + 1);
37                     provinceCityMap.put("sort", existMap.get(province + "_sort"));
38                 }
39                 
40                 provinceCityMap.put("Name", city);
41                 provinceCityMap.put("Code", map.get("cityCode"));
42                 
43                 String country = map.get("country");
44                 if (StringUtils.isNotEmpty(country)) {
45                     List<Map<String, Object>> provinceCityCountryList = null;
46                     if (existMap.containsKey(province + "_" + city + "_")) {
47                         provinceCityCountryList = (List<Map<String, Object>>) existMap.get(province + "_" + city + "_");
48                     } else {
49                         provinceCityCountryList = new ArrayList<Map<String, Object>>();
50                         existMap.put(province + "_" + city + "_", provinceCityCountryList);
51                         provinceCityMap.put("level", provinceCityCountryList);
52                     }
53                     
54                     Map<String, Object> provinceCityCountryMap = null;
55                     if (existMap.containsKey(province + "_" + city + "_" + country)) {
56                         provinceCityCountryMap = (Map<String, Object>) existMap.get(province + "_" + city + "_" + country);
57                     } else {
58                         provinceCityCountryMap = new HashMap<String, Object>();
59                         existMap.put(province + "_" + city + "_" + country, provinceCityCountryMap);
60                         provinceCityCountryList.add(provinceCityCountryMap);
61                         String countrySort = String.valueOf(existMap.get(province + "_" + city + "_sort"));
62                         existMap.put(province + "_" + city + "_sort", "null".equals(countrySort) ? 1 : NumberUtils.toInt(countrySort) + 1);
63                         provinceCityCountryMap.put("sort", existMap.get(province + "_" + city + "_sort"));
64                     }
65                     
66                     provinceCityCountryMap.put("Code", map.get("countryCode"));
67                     provinceCityCountryMap.put("Name", country);
68                 }
69             }
70         }
71         
72         try {
73             return JsonUtils.toJson(zoneList);
74         } catch (Exception e) {
75             e.printStackTrace();
76         }
77         
78         return null;
79     }
80     

 

假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请点击http://106.12.206.16:8080/qingruihappy/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值