c# List列表数据转换成树形结构
- 把List列表结构 转换成树形结构
- /// <summary>
- /// 构造树形Json
- /// </summary>
- public static class TreeJson
- {
- /// <summary>
- /// 转换树Json
- /// </summary>
- /// <param name="list">数据源</param>
- /// <param name="parentId">父节点</param>
- /// <returns></returns>
- public static string ZTreeJson(this List<TreeEntity> list, string parentId = null) //GetDepartmentTree等方法会给parentId赋值的是null,所以这里的parentId不能写""
- {
- StringBuilder strJson = new StringBuilder();
- List<TreeEntity> item = list.FindAll(t => t.parentId == parentId);
- strJson.Append("[");
- if (item.Count > )
- {
- foreach (TreeEntity entity in item)
- {
- strJson.Append("{");
- strJson.Append("\"id\":\"" + entity.id + "\",");
- if (!string.IsNullOrEmpty(entity.text))
- {
- strJson.Append("\"name\":\"" + entity.text.Replace(" ", "") + "\",");
- }
- if (!string.IsNullOrEmpty(entity.Attribute))
- {
- strJson.Append("\"" + entity.Attribute + "\":\"" + entity.AttributeValue + "\",");
- }
- if (!string.IsNullOrEmpty(entity.AttributeA))
- {
- strJson.Append("\"" + entity.AttributeA + "\":\"" + entity.AttributeValueA + "\",");
- }
- if (!string.IsNullOrEmpty(entity.AttributeB))
- {
- strJson.Append("\"" + entity.AttributeB + "\":\"" + entity.AttributeValueB + "\",");
- }
- if (!string.IsNullOrEmpty(entity.AttributeC))
- {
- strJson.Append("\"" + entity.AttributeC + "\":\"" + entity.AttributeValueC + "\",");
- }
- if (entity.checkstate != null)
- {
- strJson.Append("\"checked\":" + entity.checkstate + ",");
- }
- strJson.Append("\"showcheck\":" + entity.showcheck.ToString().ToLower() + ",");
- strJson.Append("\"open\":" + entity.isexpand.ToString().ToLower() + ",");
- strJson.Append("\"isParent\":" + entity.hasChildren.ToString().ToLower() + ",");
- strJson.Append("\"children\":" + ZTreeJson(list, entity.id) + "");
- strJson.Append("},");
- }
- strJson = strJson.Remove(strJson.Length - , );
- }
- strJson.Append("]");
- return strJson.ToString();
- }
- /// <summary>
- /// 转换树Json
- /// </summary>
- /// <param name="list">数据源</param>
- /// <param name="ParentId">父节点</param>
- /// <returns></returns>
- public static string TreeToJson(this List<TreeEntity> list, string ParentId = null) //GetDepartmentTree等方法会给parentId赋值的是null,所以这里的parentId不能写""
- {
- StringBuilder strJson = new StringBuilder();
- List<TreeEntity> item = list.FindAll(t => t.parentId == ParentId);
- strJson.Append("[");
- if (item.Count > )
- {
- foreach (TreeEntity entity in item)
- {
- strJson.Append("{");
- strJson.Append("\"id\":\"" + entity.id + "\",");
- if (!string.IsNullOrEmpty(entity.text))
- {
- strJson.Append("\"text\":\"" + entity.text.Replace(" ", "") + "\",");
- }
- if (!string.IsNullOrEmpty(entity.value))
- {
- strJson.Append("\"value\":\"" + entity.value + "\",");
- }
- if (!string.IsNullOrEmpty(entity.Attribute))
- {
- strJson.Append("\"" + entity.Attribute + "\":\"" + entity.AttributeValue + "\",");
- }
- if (!string.IsNullOrEmpty(entity.AttributeA))
- {
- strJson.Append("\"" + entity.AttributeA + "\":\"" + entity.AttributeValueA + "\",");
- }
- if (entity.title != null && !string.IsNullOrEmpty(entity.title.Replace(" ", "")))
- {
- strJson.Append("\"title\":\"" + entity.title.Replace(" ", "") + "\",");
- }
- if (entity.img != null && !string.IsNullOrEmpty(entity.img.Replace(" ", "")))
- {
- strJson.Append("\"img\":\"" + entity.img.Replace(" ", "") + "\",");
- }
- if (entity.checkstate != null)
- {
- strJson.Append("\"checkstate\":" + entity.checkstate + ",");
- }
- //if (entity.parentId != null)
- //{
- // strJson.Append("\"parentnodes\":\"" + entity.parentId + "\",");
- //}
- strJson.Append("\"parentnodes\":\"" + entity.parentId + "\",");
- if (entity.Level != null)
- {
- strJson.Append("\"Level\":" + entity.Level + ",");
- }
- strJson.Append("\"showcheck\":" + entity.showcheck.ToString().ToLower() + ",");
- strJson.Append("\"isexpand\":" + entity.isexpand.ToString().ToLower() + ",");
- if (entity.complete == true)
- {
- strJson.Append("\"complete\":" + entity.complete.ToString().ToLower() + ",");
- }
- strJson.Append("\"hasChildren\":" + entity.hasChildren.ToString().ToLower() + ",");
- strJson.Append("\"ChildNodes\":" + TreeToJson(list, entity.id) + "");
- strJson.Append("},");
- }
- strJson = strJson.Remove(strJson.Length - , );
- }
- strJson.Append("]");
- return strJson.ToString();
- }
- }
c# List列表数据转换成树形结构的更多相关文章
- 使用js将后台返回的数据转换成树形结构
将类似如下数据转换成树形的数据: [ { id: 1, name: '1', }, { id: 2, name: '1-1', parentId: 1 }, { id: 3, name: '1-1-1 ...
- javascript将平行的拥有上下级关系的数据转换成树形结构
转换函数 var Littlehow = {}; /** * littlehow 2019-05-15 * 平行数据树形转换器 * @type {{format: tree.format, sort: ...
- js将有父子关系的数据转换成树形结构数据
js将有父子关系的数据转换成树形结构数据 比如如下基本数据: let allDatas = [ { id: 3, name: 'bbbb', parendId: 1 }, { id: 2, name: ...
- 记一则 Lambda内递归调用方法将集合对象转换成树形结构
public dynamic GetDepartments(string labID) { List<int> usedIDs = new List<int>(); //缓存已 ...
- Word排版成树形结构技巧
初始文字 A A1 A2 B1 B1 B2 C C1 希望效果 关健设置
- dom4j 解析字符串成树形结构
引入maven依赖: <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artif ...
- Java数据封装成树形结构,多级
参考地址:https://blog.csdn.net/chendu500qiang/article/details/91493147 1.实体类 @data public class PublishS ...
- idea目录结构子目录在父目录后面跟着改成树形结构
1.点击项目窗口的设置按钮 2.取消Compact Middle Packages选项的对勾即可
- Java编程:将具有父子关系的数据库表数据转换为树形结构,支持无限层级
在平时的开发工作中,经常遇到这样一个场景,在数据库中存储了具有父子关系的数据,需要将这些数据以树形结构的形式在界面上进行展示.本文的目的是提供了一个通用的编程模型,解决将具有父子关系的数据转换成树形结 ...
随机推荐
- android studio 报红解决
/Users/houzhibin/gradle/wrapper/dists/gradle-4.1-all/bzyivzo6n839fup2jbap0tjew/gradle-4.1-all.zip
- 限流redis+lua
限流==保险丝策略,可借助框架如spring cloud中Hystrix组件实现.今天介绍使用guava RateLimiter 类实现接口限流. 比如12306抢票: https://blog.cs ...
- jQuery第1天
概念 jQuery 是一个 JavaScript 库,其实就是通过 原生JS 封装了的很多的 方法 和 属性. JS 库特点 JavaScript 库:由第三方开发者基于原生 JS 基础上,封装了很多 ...
- 前端面试题整理—React篇
1.说一下React React是Facebook 开发的前端JavaScript库 V层:react并不是完整的MVC框架,而是MVC中的C层 虚拟DOM:react引入虚拟DOM,每当数据变化通过 ...
- mysql MHA扩展haproxy搭建从库只读负载均衡
[环境介绍] 系统环境:Red Hat Enterprise Linux 7 + 5.7.18 + MHA version 0.57 MHA架构中从库之间的负责均衡可选择mysql_route& ...
- mysqldump 备份数据和恢复
命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名; 一.导出数据: 导出整个数据库结构和数据mysqldump -h localhost -u ...
- PyCharm(python的开发工具)的安装与破解
最近在进行python的入门学习,俗话说:工欲善其事,必先利其器.最初学习时,一款好的IDE(Integrated Development Environment)绝对是很重要的,有利于后期学习,并且 ...
- L1-Day13
1.Being late is an unforgivable sin here.[我的翻译]在北京,迟到是不可饶恕的罪名.[标准答案]在这里迟到是不可原谅的.[对比分析]对自己的也是醉醉的了,Bei ...
- idea编译错误提示编译版本不对,需要注意的配置
- P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
对于一个牛,它存在两种状态:1.处于联通分量 2.不处于联通分量.对于处于联通分量的牛,求出联通分量的大小:对于不处于联通分量的牛,求出其距离联通分量的路程+联通分量大小. 不同的联通分量,染上不同的 ...