如下,我们要返回下面的数据格式

 {"value": "3","label": "安徽省","children": [{"value": "安庆市","label": "36","children1s": [{"label": "398","value": "迎江区"},{"label": "399","value": "大观区"},{"label": "400","value": "宜秀区"},{"label": "401","value": "桐城市"},{"label": "402","value": "怀宁县"},{"label": "403","value": "枞阳县"},{

那么可以通过构造辅助类来完成

这里因为这里是三级,所以我就构造了三个辅助类

@Getter
@Setter
public class Data {private String value;private String label;private List<Children> children;
}
@Setter
@Getter
public class Children {private String value;private String label;private List<Children1> children1s;
}
@Getter
@Setter
public class Children1 {private String label;private String value;
}

我的mapper

  //查询所有的省@Select("select * from zone where pid = 1")List<ZoneInfo> selectProvince();//查询该省所有的市@Select("select * from zone where  pid =#{provinceId}")List<ZoneInfo> selectCityByProvinceId(String provinceId);//查询该市对应的县@Select("select * from zone where  pid =#{cityId}")List<ZoneInfo> selectCountyByCityId(String cityId);

接下来是我的serviceimpl

 @Overridepublic Result selectAll() {List<Data> dataList = null;try {dataList = new ArrayList<Data>();List<ZoneInfo> provinces = zoneInfoMapper.selectProvince();for (ZoneInfo province : provinces) {Data data = new Data();data.setValue(String.valueOf(province.getId()));data.setLabel(province.getDistrict());List<ZoneInfo> cities = zoneInfoMapper.selectCityByProvinceId(String.valueOf(province.getId()));List<Children> childrenList = new ArrayList<Children>();for (ZoneInfo city : cities) {Children children = new Children();children.setLabel(String.valueOf(city.getId()));children.setValue(city.getDistrict());childrenList.add(children);List<ZoneInfo> counties = zoneInfoMapper.selectCountyByCityId(String.valueOf(city.getId()));List<Children1> children1s = new ArrayList<Children1>();for (ZoneInfo county : counties) {Children1 children1 = new Children1();children1.setLabel(String.valueOf(county.getId()));children1.setValue(county.getDistrict());children1s.add(children1);}children.setChildren1s(children1s);}data.setChildren(childrenList);dataList.add(data);}} catch (Exception e) {Logger.logMsg(4, e.getMessage());return Result.build(500, ErrorCode.UNKNOWN_ERROR.getStatusMsg());}return Result.ok(dataList);}

这里需要注意的是

Data data = new Data();需要在for循环里面创建,因为对于不同的province都是一个data,然后每一个data最终添加到datalist里面。如果是在for循环外面实例化,就会被覆盖掉,导致datalist里面的数据只有最后一个
同样的下面的children以及children1也一样

转载于:https://www.cnblogs.com/flyingcr/p/10326947.html

返回三级联动的JSON数据相关推荐

  1. SpringBoot(3) 获取后台返回字符串对象及json数据

    下面讲解springboot-web工程 如何跳转到一个页面 和 获取一个后台返回的字符串,对象,以及json数据... 1.创建一个maven web工程   2.导入依赖 <!-- web支 ...

  2. php3级分类,关于php非递归三级分类输出json数据

    ** 有以下数据结构表 ** ** 需要输出json格式为: ** pickerValueArray: [ {label: 'phone',value: 0,children: [ { label:  ...

  3. java返回给前端的json数据中带有转义符号如何处理

    情景描述: 有的场景我们存的是String字符串但是不能每次都固定的实体进行封装,这时候我们如果直接返回给前端对应的字符串,其中就会出现对应的 "\ 的转义符号,如何去掉呢? 解决方法 在获 ...

  4. 省市区三级联动 数据库取数据js代码

    //页面部分代码 <div class="mui-input-row"> <label class="txt2">丢失地点</la ...

  5. 城市三级联动的json文件

    [{"code" : "110000","name" : "北京市","children" : [{ ...

  6. element-ui省市区三级联动:选择即改变

    element-ui 省市区三级联动:选择即改变 注意: 阅读本文,经验传授: vue.js单组件引入外部或自定义的 .js文件,并调用文件内三级联动的 json数据: 自定义设置 默认地址,结合js ...

  7. 怎么把json数据转化为数组_RESTful API 返回统一JSON数据格式是怎么实现的?

    关于 Spring 的全局处理,我有两方面要说: 统一数据返回格式 统一异常处理 为了将两个问题说明清楚,将分两个章节分别说明,本章主要说第一点 有童鞋说,我们项目都做了这种处理,就是在每个 API ...

  8. 那些年遇到的后台返回的奇葩json数据

    前言 开发多年,遇到的后台有很多,不同的人写的代码风格不一样,写出来的接口也不一样.下面就请求失败的接口举个例子,让大家看看有哪些奇葩的接口.反正我看的想打人了有木有? 1. 返回一片空白. 大哥,你 ...

  9. 第三节:微信小程序模拟动态加载服务器返回json数据

    上一节虽然完成了新闻的静态展示页面,但是实际开发中,数据通常是请求服务器返回的json数据,这时候就需要页面动态加载显示服务器返回的数据. 在完成的静态页面的代码上,需要做相应的修改,首先需要编写po ...

最新文章

  1. bzoj 3357 [Usaco2004]等差数列 dp
  2. oracle 整个表空间迁移,oracle11g迁移表空间
  3. 架构实战:(一)Redis采用主从架构的原因
  4. 文本查询TextQuery类文件编写
  5. win10计算机修改底色,win10电脑如何修改登陆背景
  6. KubeCon 、 CloudNativeCon、Open Source Summit 2019三会交融,看点不断!
  7. linux内核定时器死机,浅析linux内核中timer定时器的生成和sofirq软中断调用流程
  8. android tv的冷启动,YunOS智能电视操作系统——10秒快速冷启动开机
  9. python中pow_如何在python中找到pow(a,b,c)的反向?
  10. PHPCMS V9.6.0 SQL注入漏洞EXP
  11. suse linux rpm 安装
  12. 二维数组 : 旋转矩阵
  13. java基础 内部类详解
  14. Unity 之 官网下载地址,方便各个版本的 Unity 安装包下载
  15. cf_Gym 101572 K.Kayaking Trip
  16. RQNOJ 341 星门跳跃【解题报告】
  17. Android Studio查看错误信息
  18. WeBRTC IOS视频采集流程
  19. 全球及中国铁矿石行业供求状况与投资决策建议报告2022版
  20. 快速记忆英语单词计算机,电脑英语记单词软件哪个好循环记忆_怎么能快速记忆英语单词...

热门文章

  1. lsb算法 java,解决:-bash: lsb_release: command not found办法
  2. MySQL的事务处理
  3. ajax请求会阻塞dom,Jquery ajax 同步阻塞引起的UI线程阻塞问题_jquery
  4. kmap_atomic的细节以及改进
  5. 实用设置_华为手机4个冷门实用的设置,都知道的绝对是资深花粉
  6. 接口——从事物的共同点出发
  7. SQL SERVER 高效存储过程分页(Max/Min方法)
  8. 使用IntelliJ IDEA配置Erlang开发环境
  9. Cocos2dx游戏源码合集
  10. mysql 双主 脑裂_MySQL 高可用性keepalived+mysql双主