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

时间:2022-08-23 15:23:00

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

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

二,要求的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格式的数据的更多相关文章

  1. 省市县从数据库读出来的list数据转换成json格式的数据

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

  2. 获取微信的access&lowbar;tokey,处理json格式的数据

    #region 获取微信凭证 public string GetAccessToken(string wechat_id) { string accessToken = ""; D ...

  3. 根据id查询数据&lpar;向前台返回json格式的数据&rpar;

    /** *@description 根据主键查询Bean */ @RequestMapping(value="/getBean/{getId}") public void getB ...

  4. ajax异步获取数据后动态向表格中添加数据&lpar;行&rpar;

    因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子 1.HTML页面 <!doctype html> ...

  5. Android Volley获取json格式的数据

    为了让Android能够快速地访问网络和解析通用的数据格式Google专门推出了Volley库,用于Android系统的网络传输.volley库可以方便地获取远程服务器的图片.字符串.json对象和j ...

  6. 将序列化成json格式后日期&lpar;毫秒数&rpar;转成日期格式

    System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaS ...

  7. &dollar;&period;ajax返回的JSON格式的数据后无法执行success的解决方法

    近段时间做项目,在项目使用了ajax技术,遇到了一个奇怪的问题:"$.ajax返回的JSON格式的数据无法执行success",代码是这样写的: 1 $.ajax({ 2 .. 3 ...

  8. serializeArray&lpar;&rpar;获取的表单参数转化成json格式的对象

    目标:将serializeArray()这个方法获取的表单对象  转换成json格式 function serializeObject(){ //easyui提交表单 $('#form').form( ...

  9. 使用google的GSON解析json格式的数据

    GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...

随机推荐

  1. !cocos2d ccdictionary-&gt&semi;retain&lpar;&rpar;的问题

    我再a类当中生命了一个dict,将它带入到b类当中,但没有在b类初始化时retain,于是在update当中找不到了.啃爹不.记得retain()

  2. eclipse启动问题

    今天在公司正上班,突然跳出来一个windows update补丁更新,然后就确认呗,结果更新完成之后, eclipse打不开了,启动报错: could not find the main class, ...

  3. AngularJs中ng-controller下的函数在调用时为什么会执行两次?

    最近在学习AngularJs的过程中,自己做了个demo,但程序运行后却发现有个地方运行不对劲,纠结了半天,也问了,也查了,但是没有一个满意的答案,所以特地贴出来,请教各位大神(先说声谢谢了!).为了 ...

  4. 爬虫&lowbar;url去重策略

    如何对url去重? 将访问url保存到数据库中,效率低,最简单 将url保存到set中,查询速度快,但当url达到1亿多条时候,占用太多内存空间 将url经过md5等方法哈希后保存到set中 用bit ...

  5. python小白——进阶之路——day2天-———数据类型和Number类型和str字符串

    ### -python的六大标准数据类型(1)Number 数字类型(int float bool complex)(2)String 字符串类型(3)List 列表类型(4)Tuple 元组类型(5 ...

  6. 计算机视觉学习记录 - Implementing a Neural Network from Scratch - An Introduction

    0 - 学习目标 我们将实现一个简单的3层神经网络,我们不会仔细推到所需要的数学公式,但我们会给出我们这样做的直观解释.注意,此次代码并不能达到非常好的效果,可以自己进一步调整或者完成课后练习来进行改 ...

  7. assert BOOST&lowbar;ASSERT的坑

    下面这行代码 BOOST_ASSERT(SUCCEEDED(m_pd3dDevice->CreateBuffer(&frame_ptr->m_const_buffers[i].m_ ...

  8. MySQL学习笔记Windows篇&lt&semi;一&gt&semi; Welcome to MySQL

    MySQL安装完毕后没有图形化操作界面,图形化管理界面需要另行安装,个人比较喜欢Navicat,界面更像SQLserver: 此篇学习笔记所有操作均使用命令行中完成: 1.开启/停止服务 使用MySQ ...

  9. Oracle EBS 应收发票取值

    SELECT ct.trx_number ,ctl.description ,fnd_flex_ext.get_segs('SQLGL' ,'GL#' ,gcc.chart_of_accounts_i ...

  10. angular -- ng-ui-route路由及其传递参数?page页面版

    前面有说过 ng-ui-route 使用 script 标签来做,但是很多时候,会通过引入模板页面的方式来实现: 具体代码: <!DOCTYPE html> <html lang=& ...