数据库获取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 ...
随机推荐
- BZOJ 1483: [HNOI2009]梦幻布丁 [链表启发式合并]
1483: [HNOI2009]梦幻布丁 题意:一个带颜色序列,一种颜色合并到另一种,询问有多少颜色段 一种颜色开一个链表,每次遍历小的合并到大的里,顺带维护答案 等等,合并方向有规定? 令col[x ...
- qt中的tcp编程
server .server.h #define DIALOG_H #include <QDialog> #include <QTcpServer> #include < ...
- 关于目前自己iOS项目使用的第三方开源库
1.AFNetworking 目前比较推荐的iOS网络请求组件,默认网络请求是异步,通过block回调的方式对返回数据进行处理. 2.FMDB 对sqlite数据库操作进行了封装,demo也比较简单. ...
- CentOS7 修改网卡名称为eth0
前言 无论是RHEL 7.还是CentOS 7都使用了NetworkManager.service来进行网络管理,当然network服务还是可以继续使用的,但也将会是过渡期的残留品了. 除此之外7版本 ...
- How to delete a VM with snapshots
A note about error: "cannot delete inactive domain with snapshots" You cannot delete a VM ...
- windows FileZilla Server 开启FTP over TLS
FileZilla Server官方下载地址: https://filezilla-project.org/download.php?type=server FileZilla Server 开启FT ...
- 【ASP.NET Core】处理异常(下篇)
上一篇中,老周给大伙伴们扯了有关 ASP.NET Core 中异常处理的简单方法.按照老周的优良作风,我们应该顺着这个思路继续挖掘. 本文老周就不自量力地介绍一下如何使用 MVC Filter 来处理 ...
- 抛砖引玉之~sftp
跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux XFtp用惯了,没有它就不行了?Linux就不能文件传输了? 答案肯定是~No ...
- [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 平均值 vs 百分比
<<返回目录 平均值 vs 百分比 在考虑要性能测试的目标值时,我们需要考虑用什么统计口径.大多数人都会首选平均值,但在大多数情况下,这个正确的,但你也应该适当的考虑百分数.但你有可用性的 ...
- Mysql 远程登录及常用命令
第一招.mysql服务的启动和停止 net stop mysql net start mysql 第二招.登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uro ...