数据库获取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 ...
随机推荐
- HDU D Tree [点分治]
传送门 题意:找路径积$\mod 1e6+3 = k$的字典序最小点对 作为一个点分治蒟蒻,写这道题花了两节课.... 显然只要开一个桶$c[i]$记录当前路径积为$i$的最小点 然后处理一个子树时一 ...
- python---协程 学习笔记
协程 协程又称为微线程,协程是一种用户态的轻量级线程 协程拥有自己的寄存器和栈.协程调度切换的时候,将寄存器上下文和栈都保存到其他地方,在切换回来的时候,恢复到先前保存的寄存器上下文和栈,因此:协程能 ...
- 将你的Python Web程序部署到Ubuntu服务器上
在本文记录了我在Ubuntu中部署Flask Web站点的过程, 其中包括用户创建.代码获取.Python3环境的安装.虚拟环境设置.uWSGI启动程序设置,并将Nginx作为前端反向代理.希望对各位 ...
- Nodejs的运行原理-模块篇
前言 使用Nodejs,就不可避免地引用第三方模块,它们有些是Nodejs自带的(例:http,net...),有些是发布在npm上的(例:mssql,elasticsearch...) 本篇章聚焦3 ...
- Java常用日志框架介绍
Java常用日志框架介绍 java日志概述 对于一个应用程序来说日志记录是必不可少的一部分.线上问题追踪,基于日志的业务逻辑统计分析等都离不日志.java领域存在多种日志框架,目前常用的日志框架包括L ...
- LNMP搭建01 -- 编译安装MySQL 5.6.14 和 LNMP相关的区别
[编译安装MySQL 5.6.14] [http://www.cnblogs.com/xiongpq/p/3384681.html ] [mysql-5.6.14.tar.gz 下载] http:/ ...
- MYSQL EXPLAIN执行计划命令详解(支持更新中)
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 本篇是根据官网中的每个一点来翻译.举例.验证的:英语不好,所 ...
- JavaScript命名整理
.container { width: 720px; background: #fafafa; border: 2px dashed #999; padding: 10px; float: left ...
- Java SocketChannel 读取ByteBuffer字节的处理模型
在JAVA中的流分为字节流或字符流,一般来说采用字符流处理起来更加方便.字节流处理起来相对麻烦,SocketChannel中将数据读取到ByteBuffer中,如何取出完整的一行数据(使用CRLF分隔 ...
- Java导出freemarker实现下载word文档格式功能
首先呢,先说一下制作freemarker模板步骤, 1. 在WPS上写出所要的下载的word格式当做模板 2. 把模板内不固定的内容(例:从数据库读取的信息)写成123或者好代替的文字标注 3. 把固 ...