首页IT科技js list转jsonArray(TreeUtils工具类一行代码实现列表转树 实战Java8 三级菜单 三级分类 附视频)

js list转jsonArray(TreeUtils工具类一行代码实现列表转树 实战Java8 三级菜单 三级分类 附视频)

时间2025-08-02 01:05:55分类IT科技浏览4825
导读:一、序言 在日常一线开发过程中,总有列表转树的需求,几乎是项目的标配,比方说做多级菜单、多级目录、多级分类等,有没有一种通用且跨项目的解决方式呢?帮助广大技术朋友给业务瘦身,提高开发效率。...

一              、序言

在日常一线开发过程中             ,总有列表转树的需求                    ,几乎是项目的标配      ,比方说做多级菜单                   、多级目录      、多级分类等       ,有没有一种通用且跨项目的解决方式呢?帮助广大技术朋友给业务瘦身                    ,提高开发效率             。

本文将基于Java8的Lambda 表达式和Stream等知识             ,使用TreeUtils工具类实现一行代码完成列表转树这一通用型需求                    。本文有配套视频       ,传送门直达      。

二              、实战编码

1                    、引入坐标

本坐标地址包含TreeUtils工具类方法                    ,已经发布到Maven中央仓库             ,建议使用最新的版本号,本文法布施版本是1.5.8       。

学习源码的朋友                    ,源码直通车

<dependency> <groupId>xin.altitude.cms</groupId> <artifactId>ucode-cms-common</artifactId> <version>1.5.8</version> </dependency> 2      、实现接口

列表实体类实现ITreeEntity并实现抽象方法                    。

/** * 类别表 */ @Data @NoArgsConstructor @AllArgsConstructor @TableName(value = "bu_category") public class Category implements ITreeEntity<String> { private static final long serialVersionUID = 1L; @TableId(type = IdType.AUTO) private String id; private String name; private String parentId; } 3       、调用TreeUtils工具类

在服务层调用TreeUtils工具类                    ,一行代码完成转换             。

public List<TreeNode<String>> selectCategoryList2() { List<Category> list = this.list(); // 一行代码实现列表转树结构 通用型代码 能够跨项目使用 业务解藕 return TreeUtils.createNode(list, "000000"); } 4                    、效果展示

原始列表数据

{ "code": 200, "msg": "操作成功", "data": [ { "id": "310000", "name": "电子商务", "parentId": "000000" }, { "id": "310100", "name": "大宗商品", "parentId": "310000" }, { "id": "310101", "name": "大宗商品综合", "parentId": "310100" }, { "id": "310102", "name": "钢铁类电商", "parentId": "310100" } ] }

树状层次数据

{ "code": 200, "msg": "操作成功", "data": [ { "id": "310000", "name": "电子商务", "childList": [ { "id": "310100", "name": "大宗商品", "childList": [ { "id": "310101", "name": "大宗商品综合", "childList": [] }, { "id": "310102", "name": "钢铁类电商", "childList": [] } ] } ] } ] }

三             、小结

通过一个小小的高频业务场景,抽离业务共性             ,屏蔽业务细节                    ,实现了通用型业务逻辑的编码       。

希望广大技术朋友在完成日常开发工作的前提下      ,能够进一步打磨代码             ,感受编程之美                    。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
查看进程是否存在的命令(怎么快速判断哪些进程是系统进程最简单的方法) 计算机二级考试C语言程序设计题常考(计算机等级考试二级C语言程序设计专项训练题——程序设计题(四))