一、数据库
1、数据库表
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for ums_dic_item
-- ----------------------------
DROP TABLE IF EXISTS `ums_dic_item`;
CREATE TABLE `ums_dic_item` (
`id` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键',
`item_code` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '字典项编码',
`item_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '字典项名称',
`pid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '字典项父ID',
`type_code` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '字典类型编码',
`level` tinyint(4) NULL DEFAULT NULL COMMENT '级别',
`state` tinyint(4) NOT NULL COMMENT '字典项状态:0.禁用、1.正常',
`sort` int(11) NULL DEFAULT NULL COMMENT '排序',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '字典描述',
`site` int(5) NULL DEFAULT NULL COMMENT '站点',
PRIMARY KEY (`id`) USING BTREE,
INDEX `type_code`(`type_code`) USING BTREE,
CONSTRAINT `ums_dic_item_ibfk_1` FOREIGN KEY (`type_code`) REFERENCES `ums_dic_type` (`type_code`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '字典项' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;
2、数据库表数据案例
二、代码案例
1、controller
/**
* 根据typeCode查询下拉框字典项
*
* @param param 字典项类型编号
*
* @return rest结果
*/
@Log("查询字典项下拉框选项")
@ApiOperation(value = "查询字典项下拉框选项", notes = "查询字典项下拉框选项")
@PostMapping(value = "/ums/dic/item/option")
public ResultData<List<UmsDicItemOption>> listOption(
@Validated @RequestBody @ApiParam(value = "查询字典项下拉框选项") UmsDicItemTypeCode param) {
List<UmsDicItemOption> bean = umsDicItemService.listOption(param);
return new ResultData<List<UmsDicItemOption>>(bean);
}
2、用到的实体类
@ApiModel(value = "字典项下拉参数")
@Setter
@Getter
public class UmsDicItemTypeCode {
/** 字典类型:fwlb.服务类别、hdlx.活动类型、scly.擅长领域 */
@NotNull(message = "类型编码不能为空!")
@ApiModelProperty(value = "类型编码")
private String typeCode;
/**
* 站点ID
*/
@NotNull(message = "站点ID不能为空")
@ApiModelProperty(value = "站点ID")
private Integer site;
}
@ApiModel(value = "查询字典项选项参数")
@Setter
@Getter
public class UmsDicItemOption extends Option {
private static final long serialVersionUID = 1L;
/** 子项 */
@ApiModelProperty(value = "子项")
private Set<UmsDicItemOption> children;
}
@ApiModel(value = "通用选项数据")
@Setter
@Getter
@SuppressWarnings("serial")
public class Option implements Serializable {
/** 父选项值 */
@JsonIgnore
@ApiModelProperty(value = "父选项值")
private String parent;
/** ID */
@ApiModelProperty(value = "ID")
private String id;
/** 选项值 */
@ApiModelProperty(value = "选项值")
private String value;
/** 选项文本 */
@ApiModelProperty(value = "选项文本")
private String label;
}
3、 service
/** 根据typeCode查询下拉框字典项 */
List<UmsDicItemOption> listOption(UmsDicItemTypeCode param);
4、impl
/** 根据typeCode查询下拉框字典项 */
@Override
public List<UmsDicItemOption> listOption(UmsDicItemTypeCode param) {
log.debug("listOption()->{}", JSONUtil.toJsonStr(param));
return umsDicItemDao.listOption(param.getTypeCode(),param.getSite());
}
5、dao
/** 根据typeCode查询下拉框字典项 */
public List<UmsDicItemOption> listOption(@Param("typeCode") String typeCode,@Param("site")Integer site);
/** 根据typeCode查询下拉框字典项(children) */
public List<UmsDicItemOption> findChildren(@Param("typeCode") String typeCode,@Param("id")String id);
6、xml
<!-- 根据typeCode查询下拉框字典项 按查询嵌套处理
resultMap:结果集映射
思路:获取区域的顶层信息
根据获取的区域的顶层信息的id, pid, item_name ->>>获取该下一级的区域信息
-->
<select id="listOption" resultMap="listOptionItem">
<![CDATA[ select id,pid,type_code,item_name from ums_dic_item where (pid is null or pid = '') and `type_code` = #{typeCode} and `site` = #{site} and state = 1 order by sort]]>
</select>
<!-- type:自己的实体类POJO
property:实体类自己的属性名
column:sql查询出来的字段名也就是列名
property="children":该类下的一对多的哪一个属性名
javaType:指定children这个属性的类型,查询嵌套要写,结果嵌套则不需要写
ofType:映射到set集合属性中pojo的类型
collection->column:如果column是单参数,下面第二个查询字段可以是任意值,因为会自动匹配上带进去进而查询
如果Column是多参数,column="{key=value,key=value}",其实是键值对的形式,key是传给片段二中sql的取值名称,value是片段一中sql查询出来的字段名
-->
<resultMap id="listOptionItem" type="com.yeyoo.mall.beans.umsDicItem.UmsDicItemOption">
<result property="id" column="id"/>
<result property="value" column="id"/>
<result property="label" column="item_name"/>
<collection column="{pid=id,typeCode=type_code}" property="children" javaType="java.util.Set" ofType="com.yeyoo.mall.beans.umsDicItem.UmsDicItemOption" select="com.yeyoo.mall.dao.UmsDicItemDao.findChildren" />
</resultMap>
<!-- public List<UmsDicItemOption> findChildren(@Param("typeCode") String typeCode,@Param("id")String id);-->
<!--
这里的 #{typeCode} 和 #{pid} 是跟collection中的column的key相对应的,必须一致
-->
<select id="findChildren" resultMap="listOptionItem">
<![CDATA[ select id,pid,type_code,item_name from ums_dic_item where `type_code` = #{typeCode} and pid=#{pid} and state = 1 order by sort]]>
</select>
7、postman测试接口
- 由于是用的查询嵌套处理,可能在数据量大的地方会查询的慢
- 表中建立了索引,索引方法是BTREE,提高了查询速度,查询时间大概366ms!
三、鉴于上个方法用时过长,我们用第二种方法
1、数据库表和数据与上面一样
2、controller
@ApiOperation(value = "适用区域树", notes = "适用区域树")
@PostMapping(value = "/ums/dic/item/area/tree")
public ResultData<List<UmsDicItemOption>> getAreaTree(
@Validated @RequestBody @ApiParam(value = "查询单级级字典项") UmsDicItemList param) {
List<UmsDicItemTree> itemList = umsDicItemService.getAreaTree(param);
List<UmsDicItemOption> list = itemList.stream()
.filter(item -> "".equals(item.getPid()))
.map(item -> covert(item, itemList))
.collect(Collectors.toList());
return new ResultData<>(list);
}
private UmsDicItemOption covert(UmsDicItemTree item, List<UmsDicItemTree> itemList) {
UmsDicItemOption umsDicItemOption = new UmsDicItemOption();
BeanUtils.copyProperties(item, umsDicItemOption);
List<UmsDicItemOption> childrenList = itemList.stream()
.filter(subItem -> subItem.getPid().equals(item.getId()))
.map(subItem -> covert(subItem, itemList)).collect(Collectors.toList());
HashSet<UmsDicItemOption> children = new HashSet<>(childrenList);
umsDicItemOption.setChildren(children);
return umsDicItemOption;
}
3、用到的实体类
@ApiModel(value = "查询字典项参数")
@Setter
@Getter
public class UmsDicItemList extends StartPage {
/** 字典类型编码 */
// @NotSQL(message = "字典类型编码 存在SQL注入关键字")
@Size(min = 0, max = 20, message = "字典类型编码 字段长度要在0-20之间")
@ApiModelProperty(value = "字典类型编码 字段长度要在0-20之间")
private String typeCode;
/** 字典项状态:0.禁用、1.正常 */
@ApiModelProperty(value = "字典项状态:0.禁用、1.正常")
private Byte state;
/** 字典名称编码 */
// @NotSQL(message = "字典名称编码 存在SQL注入关键字")
@Size(min = 0, max = 20, message = "字典名称编码 字段长度要在0-20之间")
@ApiModelProperty(value = "字典名称编码 字段长度要在0-20之间")
private String itemName;
/** 等级 */
@ApiModelProperty(value = "字等级")
private Integer level;
/** 父编码 */
@ApiModelProperty(value = "父编码")
private String pid;
/**
* 站点ID
*/
@NotNull(message = "站点ID不能为空")
@ApiModelProperty(value = "站点ID")
private Integer site;
}
@ApiModel(value = "适用区域树")
@Setter
@Getter
public class UmsDicItemTree implements Serializable {
/** 主键 */
@ApiModelProperty(value = "主键")
private String id = "";
/** 字典项编码 */
@ApiModelProperty(value = "字典项编码")
private String itemCode = "";
/** 字典项名称 */
@ApiModelProperty(value = "字典项名称")
private String itemName = "";
/** 字典类型编码 */
@ApiModelProperty(value = "字典类型编码")
private String typeCode = "";
/** 父ID */
@ApiModelProperty(value = "父ID")
private String pid = "";
/** 字典项描述 */
@ApiModelProperty(value = "字典项描述")
private String description = "";
/** 字典项状态:0.禁用、1.正常 */
@ApiModelProperty(value = "字典项状态:0.禁用、1.正常")
private Byte state;
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间")
private Date createTime;
/** 级别 */
@ApiModelProperty(value = "级别")
private int level;
/** 排序 */
@ApiModelProperty(value = "排序")
private int sort;
/** 上级名称 */
@ApiModelProperty(value = "上级名称")
private String fatherName = "";
/** 类别名称 */
@ApiModelProperty(value = "类别名称")
private String typeName = "";
/**
* 站点ID
*/
@ApiModelProperty(value = "站点ID")
private Integer site;
@Transient
private List<UmsDicItemTree> childList;
}
@ApiModel(value = "查询字典项选项参数")
@Setter
@Getter
public class UmsDicItemOption extends Option {
private static final long serialVersionUID = 1L;
/** 子项 */
@ApiModelProperty(value = "子项")
private Set<UmsDicItemOption> children;
}
@ApiModel(value = "通用选项数据")
@Setter
@Getter
@SuppressWarnings("serial")
public class Option implements Serializable {
/** 父选项值 */
@JsonIgnore
@ApiModelProperty(value = "父选项值")
private String parent;
/** ID */
@ApiModelProperty(value = "ID")
private String id;
/** 选项值 */
@ApiModelProperty(value = "选项值")
private String value;
/** 选项文本 */
@ApiModelProperty(value = "选项文本")
private String itemName;
}
4、service
/** 政策区域树 */
List<UmsDicItemTree> getAreaTree(UmsDicItemList param);
5、impl
/** 政策字典项 */
@Override
public List<UmsDicItemTree> getAreaTree(UmsDicItemList param) {
return umsDicItemDao.getAreaTree(param);
}
6、dao
/**区域树 */
@Select("select * from ums_dic_item where type_code = 'sqj' and state = 1 and site = #{site}")
List<UmsDicItemTree> getAreaTree(UmsDicItemList param);
7、postman测试接口
- 可以看到用时仅用了22ms,比第一种用时少了将近18倍
- 因为只用了一条sql语句查询,嵌套是java代码去做的
四、结果展示
{
"code": 200,
"message": "操作成功",
"data": [
{
"id": "46217b9ef17b11ea946c0242ac130002",
"value": null,
"itemName": "全国",
"children": [
{
"id": "d41c6c21f17b11ea946c0242ac130002",
"value": null,
"itemName": "全省",
"children": [
{
"id": "eaf936aef17b11ea946c0242ac130002",
"value": null,
"itemName": "南京市",
"children": [
{
"id": "60b9fbdaf17c11ea946c0242ac130002",
"value": null,
"itemName": "栖霞区",
"children": [
{
"id": "8f01ec44f17f11ea946c0242ac130002",
"value": null,
"itemName": "仙林街道",
"children": []
},
{
"id": "86f06a9df17f11ea946c0242ac130002",
"value": null,
"itemName": "龙潭街道",
"children": []
},
{
"id": "9f25811ff17f11ea946c0242ac130002",
"value": null,
"itemName": "西岗街道",
"children": []
},
{
"id": "6c7be8e6f17f11ea946c0242ac130002",
"value": null,
"itemName": "迈皋桥街道",
"children": []
},
{
"id": "978269d3f17f11ea946c0242ac130002",
"value": null,
"itemName": "八卦洲街道",
"children": []
},
{
"id": "5ceca7c0f17f11ea946c0242ac130002",
"value": null,
"itemName": "尧化街道",
"children": []
},
{
"id": "740dae51f17f11ea946c0242ac130002",
"value": null,
"itemName": "燕子矶街道",
"children": []
},
{
"id": "7b7758d7f17f11ea946c0242ac130002",
"value": null,
"itemName": "栖霞街道",
"children": []
},
{
"id": "648e705df17f11ea946c0242ac130002",
"value": null,
"itemName": "马群街道",
"children": []
}
]
},
{
"id": "574b7e41f17c11ea946c0242ac130002",
"value": null,
"itemName": "建邺区",
"children": [
{
"id": "447bfe83f17f11ea946c0242ac130002",
"value": null,
"itemName": "双闸街道",
"children": []
},
{
"id": "2860fed1f17f11ea946c0242ac130002",
"value": null,
"itemName": "莫愁湖街道",
"children": []
},
{
"id": "54434aa9f17f11ea946c0242ac130002",
"value": null,
"itemName": "江心洲街道",
"children": []
},
{
"id": "399a9065f17f11ea946c0242ac130002",
"value": null,
"itemName": "兴隆街道",
"children": []
},
{
"id": "4cbbe4e4f17f11ea946c0242ac130002",
"value": null,
"itemName": "沙洲街道",
"children": []
},
{
"id": "307b8c0cf17f11ea946c0242ac130002",
"value": null,
"itemName": "南苑街道",
"children": []
}
]
},
{
"id": "4c90f3edf17c11ea946c0242ac130002",
"value": null,
"itemName": "鼓楼区",
"children": [
{
"id": "d28ad0d8f17e11ea946c0242ac130002",
"value": null,
"itemName": "凤凰街道",
"children": []
},
{
"id": "e409bc71f17e11ea946c0242ac130002",
"value": null,
"itemName": "热河南路街道",
"children": []
},
{
"id": "07d0b976f17f11ea946c0242ac130002",
"value": null,
"itemName": "宝塔桥街道",
"children": []
},
{
"id": "b30254e1f17e11ea946c0242ac130002",
"value": null,
"itemName": "湖南路街道",
"children": []
},
{
"id": "fa49fff8f17e11ea946c0242ac130002",
"value": null,
"itemName": "建宁路街道",
"children": []
},
{
"id": "cb824e18f17e11ea946c0242ac130002",
"value": null,
"itemName": "江东街道",
"children": []
},
{
"id": "0fafebb8f17f11ea946c0242ac130002",
"value": null,
"itemName": "小市街道",
"children": []
},
{
"id": "ed6e67f2f17e11ea946c0242ac130002",
"value": null,
"itemName": "幕府山街道",
"children": []
},
{
"id": "8da8e483f18211ea946c0242ac130002",
"value": null,
"itemName": "中央门街道",
"children": []
},
{
"id": "a43d3583f17e11ea946c0242ac130002",
"value": null,
"itemName": "宁海路街道",
"children": []
},
{
"id": "abecdde2f17e11ea946c0242ac130002",
"value": null,
"itemName": "华侨路街道",
"children": []
},
{
"id": "c32db5fff17e11ea946c0242ac130002",
"value": null,
"itemName": "挹江门街道",
"children": []
},
{
"id": "db0de98ef17e11ea946c0242ac130002",
"value": null,
"itemName": "阅江楼街道",
"children": []
}
]
},
{
"id": "9d5f7947f17c11ea946c0242ac130002",
"value": null,
"itemName": "高淳区",
"children": [
{
"id": "04ddc424f18211ea946c0242ac130002",
"value": null,
"itemName": "淳溪街道",
"children": []
},
{
"id": "410f02a3f18211ea946c0242ac130002",
"value": null,
"itemName": "桠溪镇",
"children": []
},
{
"id": "2578392bf18211ea946c0242ac130002",
"value": null,
"itemName": "固城镇",
"children": []
},
{
"id": "37e40489f18211ea946c0242ac130002",
"value": null,
"itemName": "东坝镇",
"children": []
},
{
"id": "2e2c8c6ff18211ea946c0242ac130002",
"value": null,
"itemName": "漆桥镇",
"children": []
},
{
"id": "0e0caef2f18211ea946c0242ac130002",
"value": null,
"itemName": "砖墙镇",
"children": []
},
{
"id": "1df30c40f18211ea946c0242ac130002",
"value": null,
"itemName": "古柏街道",
"children": []
},
{
"id": "15cf696ff18211ea946c0242ac130002",
"value": null,
"itemName": "阳江镇",
"children": []
}
]
},
{
"id": "7624f67af17c11ea946c0242ac130002",
"value": null,
"itemName": "浦口区",
"children": [
{
"id": "e90584dcf17f11ea946c0242ac130002",
"value": null,
"itemName": "泰山街道",
"children": []
},
{
"id": "17152a70f18011ea946c0242ac130002",
"value": null,
"itemName": "盘城街道",
"children": []
},
{
"id": "0748f673f18011ea946c0242ac130002",
"value": null,
"itemName": "桥林街道",
"children": []
},
{
"id": "2801052df18011ea946c0242ac130002",
"value": null,
"itemName": "永宁街道",
"children": []
},
{
"id": "9fb45f4ff18011ea946c0242ac130002",
"value": null,
"itemName": "汤泉街道",
"children": []
},
{
"id": "f0a1c587f17f11ea946c0242ac130002",
"value": null,
"itemName": "顶山街道",
"children": []
},
{
"id": "ff9671b6f17f11ea946c0242ac130002",
"value": null,
"itemName": "江浦街道",
"children": []
},
{
"id": "201b5301f18011ea946c0242ac130002",
"value": null,
"itemName": "星甸街道",
"children": []
},
{
"id": "f7fd1993f17f11ea946c0242ac130002",
"value": null,
"itemName": "沿江街道",
"children": []
}
]
},
{
"id": "7e6964edf17c11ea946c0242ac130002",
"value": null,
"itemName": "江宁区",
"children": [
{
"id": "be504ffcf18011ea946c0242ac130002",
"value": null,
"itemName": "汤山街道",
"children": []
},
{
"id": "c69762c6f18011ea946c0242ac130002",
"value": null,
"itemName": "淳化街道",
"children": []
},
{
"id": "b72192cbf18011ea946c0242ac130002",
"value": null,
"itemName": "秣陵街道",
"children": []
},
{
"id": "ce36d268f18011ea946c0242ac130002",
"value": null,
"itemName": "禄口街道",
"children": []
},
{
"id": "af6163bcf18011ea946c0242ac130002",
"value": null,
"itemName": "东山街道",
"children": []
},
{
"id": "d588f943f18011ea946c0242ac130002",
"value": null,
"itemName": "江宁街道",
"children": []
},
{
"id": "e3ddcaf5f18011ea946c0242ac130002",
"value": null,
"itemName": "湖熟街道",
"children": []
},
{
"id": "ebfd1eb5f18011ea946c0242ac130002",
"value": null,
"itemName": "横溪街道",
"children": []
},
{
"id": "2b8e2052f18111ea946c0242ac130002",
"value": null,
"itemName": "麒麟街道",
"children": []
},
{
"id": "dca8e788f18011ea946c0242ac130002",
"value": null,
"itemName": "谷里街道",
"children": []
}
]
},
{
"id": "88303419f17c11ea946c0242ac130002",
"value": null,
"itemName": "六合区",
"children": [
{
"id": "68660b5af18111ea946c0242ac130002",
"value": null,
"itemName": "金牛湖街道",
"children": []
},
{
"id": "36335a17f18111ea946c0242ac130002",
"value": null,
"itemName": "大厂街道",
"children": []
},
{
"id": "6091d8e0f18111ea946c0242ac130002",
"value": null,
"itemName": "程桥街道",
"children": []
},
{
"id": "480235def18111ea946c0242ac130002",
"value": null,
"itemName": "长芦街道",
"children": []
},
{
"id": "894aed68f18111ea946c0242ac130002",
"value": null,
"itemName": "冶山街道",
"children": []
},
{
"id": "81be5be8f18111ea946c0242ac130002",
"value": null,
"itemName": "马鞍街道",
"children": []
},
{
"id": "7884601af18111ea946c0242ac130002",
"value": null,
"itemName": "龙袍街道",
"children": []
},
{
"id": "9185367af18111ea946c0242ac130002",
"value": null,
"itemName": "竹镇镇",
"children": []
},
{
"id": "58dc6a10f18111ea946c0242ac130002",
"value": null,
"itemName": "龙池街道",
"children": []
},
{
"id": "50496331f18111ea946c0242ac130002",
"value": null,
"itemName": "雄州街道",
"children": []
},
{
"id": "6f7c7cecf18111ea946c0242ac130002",
"value": null,
"itemName": "横梁街道",
"children": []
},
{
"id": "3f4d6707f18111ea946c0242ac130002",
"value": null,
"itemName": "葛塘街道",
"children": []
}
]
},
{
"id": "94daf5bcf17c11ea946c0242ac130002",
"value": null,
"itemName": "溧水区",
"children": [
{
"id": "99b0028bf18111ea946c0242ac130002",
"value": null,
"itemName": "永阳街道",
"children": []
},
{
"id": "a1242d6af18111ea946c0242ac130002",
"value": null,
"itemName": "白马镇",
"children": []
},
{
"id": "c020e8ccf18111ea946c0242ac130002",
"value": null,
"itemName": "洪蓝街道",
"children": []
},
{
"id": "c9e177b1f18111ea946c0242ac130002",
"value": null,
"itemName": "晶桥镇",
"children": []
},
{
"id": "a897a874f18111ea946c0242ac130002",
"value": null,
"itemName": "东屏街道",
"children": []
},
{
"id": "b000040cf18111ea946c0242ac130002",
"value": null,
"itemName": "柘塘街道",
"children": []
},
{
"id": "593b991df18211ea946c0242ac130002",
"value": null,
"itemName": "和凤镇",
"children": []
},
{
"id": "b7c6a9d0f18111ea946c0242ac130002",
"value": null,
"itemName": "石湫街道",
"children": []
}
]
},
{
"id": "2ca0b6e8f17c11ea946c0242ac130002",
"value": null,
"itemName": "玄武区",
"children": [
{
"id": "397de63bf17d11ea946c0242ac130002",
"value": null,
"itemName": "新街口街道",
"children": []
},
{
"id": "51c937ccf17d11ea946c0242ac130002",
"value": null,
"itemName": "红山街道",
"children": []
},
{
"id": "6336d62df17d11ea946c0242ac130002",
"value": null,
"itemName": "玄武湖街道",
"children": []
},
{
"id": "3125d8b0f17d11ea946c0242ac130002",
"value": null,
"itemName": "梅园新村街道",
"children": []
},
{
"id": "41bbb5b0f17d11ea946c0242ac130002",
"value": null,
"itemName": "玄武门街道",
"children": []
},
{
"id": "4a28b72af17d11ea946c0242ac130002",
"value": null,
"itemName": "锁金村街道",
"children": []
},
{
"id": "59f8d324f17d11ea946c0242ac130002",
"value": null,
"itemName": "孝陵卫街道",
"children": []
}
]
},
{
"id": "6bfe120ff17c11ea946c0242ac130002",
"value": null,
"itemName": "雨花台区",
"children": [
{
"id": "a8ada9eaf17f11ea946c0242ac130002",
"value": null,
"itemName": "雨花街道",
"children": []
},
{
"id": "b6f96d10f17f11ea946c0242ac130002",
"value": null,
"itemName": "西善桥街道",
"children": []
},
{
"id": "cd7899cbf17f11ea946c0242ac130002",
"value": null,
"itemName": "梅山街道",
"children": []
},
{
"id": "be22b9e5f17f11ea946c0242ac130002",
"value": null,
"itemName": "板桥街道",
"children": []
},
{
"id": "d5fd9cc5f17f11ea946c0242ac130002",
"value": null,
"itemName": "雨花经济开发区",
"children": []
},
{
"id": "c5f58683f17f11ea946c0242ac130002",
"value": null,
"itemName": "铁心桥街道",
"children": []
},
{
"id": "de65c423f17f11ea946c0242ac130002",
"value": null,
"itemName": "板桥新城",
"children": []
},
{
"id": "af673b9af17f11ea946c0242ac130002",
"value": null,
"itemName": "赛虹桥街道",
"children": []
}
]
},
{
"id": "43647fc0f17c11ea946c0242ac130002",
"value": null,
"itemName": "秦淮区",
"children": [
{
"id": "742f1963f17e11ea946c0242ac130002",
"value": null,
"itemName": "大光路街道",
"children": []
},
{
"id": "45d0dd44f17e11ea946c0242ac130002",
"value": null,
"itemName": "秦虹街道",
"children": []
},
{
"id": "4d6e95abf17e11ea946c0242ac130002",
"value": null,
"itemName": "夫子庙街道",
"children": []
},
{
"id": "54f02d34f17e11ea946c0242ac130002",
"value": null,
"itemName": "红花街道",
"children": []
},
{
"id": "93a68ecef17e11ea946c0242ac130002",
"value": null,
"itemName": "朝天宫街道",
"children": []
},
{
"id": "5c8cd30ff17e11ea946c0242ac130002",
"value": null,
"itemName": "双塘街道",
"children": []
},
{
"id": "7bf178bff17e11ea946c0242ac130002",
"value": null,
"itemName": "瑞金路街道",
"children": []
},
{
"id": "8b8dc4bff17e11ea946c0242ac130002",
"value": null,
"itemName": "光华路街道",
"children": []
},
{
"id": "9c0989dff17e11ea946c0242ac130002",
"value": null,
"itemName": "洪武路街道",
"children": []
},
{
"id": "6c31a519f17e11ea946c0242ac130002",
"value": null,
"itemName": "五老村街道",
"children": []
},
{
"id": "8344550af17e11ea946c0242ac130002",
"value": null,
"itemName": "月牙湖街道",
"children": []
},
{
"id": "652a4690f17e11ea946c0242ac130002",
"value": null,
"itemName": "中华门街道",
"children": []
}
]
}
]
}
]
}
]
}
]
}