数据库获取map数据后转化成json格式的数据
一,从数据库查出来的数据
两张表先各自左外连接,然后在相互左外连接查找省市县的数据(业务需求必须这样做,省市去的是第一张表,而市县取的是第二张表,两张表中间通过市的名字连接)见这个博文的最后一张图片
二,要求的json格式的数据
三,实现的关键代码
public String queryFullZoneInfo() { List<Map<String, String>> mapList = zoneInfoService.queryFullZoneInfo(); List<Map<String, Object>> zoneList = new ArrayList<Map<String, Object>>(); Map<String, Object> existMap = new HashMap<String, Object>(); for (Map<String, String> map : mapList) { String province = map.get("province"); Map<String, Object> provinceMap = null; if (existMap.containsKey(province)) { provinceMap = (Map<String, Object>) existMap.get(province); } else { provinceMap = new HashMap<String, Object>(); existMap.put(province, provinceMap); zoneList.add(provinceMap); } provinceMap.put("Code", map.get("provinceCode")); provinceMap.put("Name", map.get("province")); String city = map.get("city"); if (StringUtils.isNotEmpty(city)) { List<Map<String, Object>> provinceCityList = null; if (existMap.containsKey(province + "_")) { provinceCityList = (List<Map<String, Object>>) existMap.get(province + "_"); } else { provinceCityList = new ArrayList<Map<String, Object>>(); existMap.put(province + "_", provinceCityList); provinceMap.put("level", provinceCityList); } Map<String, Object> provinceCityMap = null; if (existMap.containsKey(province + "_" + city)) { provinceCityMap = (Map<String, Object>) existMap.get(province + "_" + city); } else { provinceCityMap = new HashMap<String, Object>(); existMap.put(province + "_" + city, provinceCityMap); provinceCityList.add(provinceCityMap); String citySort = String.valueOf(existMap.get(province + "_sort")); existMap.put(province + "_sort", "null".equals(citySort) ? 1 : NumberUtils.toInt(citySort) + 1); provinceCityMap.put("sort", existMap.get(province + "_sort")); } provinceCityMap.put("Name", city); provinceCityMap.put("Code", map.get("cityCode")); String country = map.get("country"); if (StringUtils.isNotEmpty(country)) { List<Map<String, Object>> provinceCityCountryList = null; if (existMap.containsKey(province + "_" + city + "_")) { provinceCityCountryList = (List<Map<String, Object>>) existMap.get(province + "_" + city + "_"); } else { provinceCityCountryList = new ArrayList<Map<String, Object>>(); existMap.put(province + "_" + city + "_", provinceCityCountryList); provinceCityMap.put("level", provinceCityCountryList); } Map<String, Object> provinceCityCountryMap = null; if (existMap.containsKey(province + "_" + city + "_" + country)) { provinceCityCountryMap = (Map<String, Object>) existMap.get(province + "_" + city + "_" + country); } else { provinceCityCountryMap = new HashMap<String, Object>(); existMap.put(province + "_" + city + "_" + country, provinceCityCountryMap); provinceCityCountryList.add(provinceCityCountryMap); String countrySort = String.valueOf(existMap.get(province + "_" + city + "_sort")); existMap.put(province + "_" + city + "_sort", "null".equals(countrySort) ? 1 : NumberUtils.toInt(countrySort) + 1); provinceCityCountryMap.put("sort", existMap.get(province + "_" + city + "_sort")); } provinceCityCountryMap.put("Code", map.get("countryCode")); provinceCityCountryMap.put("Name", country); } } } try { return JsonUtils.toJson(zoneList); } catch (Exception e) { e.printStackTrace(); } return null; }
数据库获取map数据后转化成json格式的数据的更多相关文章
- 省市县从数据库读出来的list数据转换成json格式的数据
一,数据源 1.1,数据库查出来的数据是 两张表先各自左外连接,然后在相互左外连接查找省市县的数据(业务需求必须这样做,省市去的是第一张表,而市县取的是第二张表,两张表中间通过市的名字连接)见这个博文 ...
- 获取微信的access_tokey,处理json格式的数据
#region 获取微信凭证 public string GetAccessToken(string wechat_id) { string accessToken = ""; D ...
- 根据id查询数据(向前台返回json格式的数据)
/** *@description 根据主键查询Bean */ @RequestMapping(value="/getBean/{getId}") public void getB ...
- ajax异步获取数据后动态向表格中添加数据(行)
因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子 1.HTML页面 <!doctype html> ...
- Android Volley获取json格式的数据
为了让Android能够快速地访问网络和解析通用的数据格式Google专门推出了Volley库,用于Android系统的网络传输.volley库可以方便地获取远程服务器的图片.字符串.json对象和j ...
- 将序列化成json格式后日期(毫秒数)转成日期格式
System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaS ...
- $.ajax返回的JSON格式的数据后无法执行success的解决方法
近段时间做项目,在项目使用了ajax技术,遇到了一个奇怪的问题:"$.ajax返回的JSON格式的数据无法执行success",代码是这样写的: 1 $.ajax({ 2 .. 3 ...
- serializeArray()获取的表单参数转化成json格式的对象
目标:将serializeArray()这个方法获取的表单对象 转换成json格式 function serializeObject(){ //easyui提交表单 $('#form').form( ...
- 使用google的GSON解析json格式的数据
GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...
随机推荐
- char数组中除去某个元素
/* 本程序说明: char数组中除去某个元素(其实就是strcpy源码的变形) */ #include <iostream> #include <cassert> #incl ...
- 四、正则表达式re模块
什么是正则表达式 正则表达式,又称规则表达式,通常被用来检索.替换那些符合某个模式(规则)的文本. 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一 ...
- ECMAScript 6 笔记(一)
一.ECMAScript 6简介 1996年11月,JavaScript的创造者Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这种语言能够成为国际标准.次年,ECM ...
- 广告中的AdNetwork、AdExchange、DSP、SSP、RTB和DMP是什么?
[https://www.douban.com/note/557732418/?type=rec] AdNetwork.AdExchange.DSP.SSP.RTB.DMP这些模式之间存在着内在的关系 ...
- 箱型图boxplot函数的使用
主要参数: medlwd:设置中位线宽度 whiskcol:设置虚线颜色 staplecol:设置顶端颜色 outcol:离群值颜色 相应的具体位置: outline=FALSE:去除离群值 outp ...
- UVA - 11636 Hello World! (贪心)
思路:复制次数最少并且可以部分复制,那么贪心地让当前尽量多的复制,如果最后一次复制会超过n,那就部分复制.即满足并且x尽量小. AC代码 #include <stdio.h> const ...
- UVALive - 3027 Corporative Network (并查集)
这题比较简单,注意路径压缩即可. AC代码 //#define LOCAL #include <stdio.h> #include <algorithm> using name ...
- CodeForces-749A
要求组成n的素数最多,根据n的奇偶讨论:如果n是偶数,直接打印n/2个数字'2'就可以了:如果n是基数,则先打印一个'3',再打印(n-3)/2个数字'2'就可以了. AC代码: #include&l ...
- 在SpringBoot中配置定时任务
前言 之前在spring中使用过定时任务,使用注解的方式配置很方便,在SpringBoot中的配置基本相同,只是原来在spring中的xml文件的一些配置需要改变,在SpringBoot中也非常简单. ...
- 我的Java设计模式-建造者模式
在未上大学之前,一直有个梦想"I have a dream!",就是能成为一位汽车工程师,一直幻想着开着自己设计的汽车飞奔在公路上,迷倒了万千少女.咳咳~~虽然现在没实现我的dre ...