数据库获取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 ...
随机推荐
- POJ置换群入门[3/3]
POJ 3270 Cow Sorting 题意: 一个序列变为升序,操作为交换两个元素,代价为两元素之和,求最小代价 题解: 看了黑书... 首先循环因子分解 一个循环完成的最小代价要么是循环中最小元 ...
- BZOJ 2738: 矩阵乘法 [整体二分]
给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. 愚蠢的名字...... 整体二分,影响因子就是矩阵里的数 把$\le mid$的矩阵元素加到二维树状数组里然后询问分成两组就行 ...
- IO&&Serize 利用线程Thread.Sleep实现"自动输出"
查看链接 https://github.com/jungle8884/C-.Net/tree/MyClassLibrary using System; using System.Collections ...
- git 添加远程仓
1.新建远程项目 2.提交代码 $ makdir ~/hello-world //创建一个项目hello-world $ cd ~/hello-world //打开这个项目 ...
- 11个phpstorm 快捷键介绍
11个phpstorm 快捷键介绍 http://phpstorm.tips/tips/11-toggling-case
- 关于echarts 报错 初始化对象未定义
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Winform美化MessageBox
现在在做的项目美工要求比较高,所以根据网上搜索的资料,自定义了一整套的弹出框,供大家参考,之网上其他大神有调用系统ICO的,容易导致异常,我在此使用本地资源ICO,效率高不异常.using Syste ...
- Qt 信号如何自动连接槽函数?
on_objectName_signal [static] void QMetaObject::connectSlotsByName(QObject *object) void on_<obje ...
- GB 标准
std::map<int, std::string> GB2261 = { { 0,"未知的性别" }, { 1,"男性" }, { 2," ...
- POJ - 1456 贪心+并查集
做法一:直接贪心,按照利润排序,然后直接尽量给每个活动安排到最晚的时间即可.时间复杂度O(n * d)当d都为10000时,很容易超时.由于这题数据比较水,所有贪心未超时. AC代码 #include ...