把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("&nbsp;", "") + "\",");
}
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("&nbsp;", "") + "\",");
}
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("&nbsp;", "")))
{
strJson.Append("\"title\":\"" + entity.title.Replace("&nbsp;", "") + "\",");
}
if (entity.img != null && !string.IsNullOrEmpty(entity.img.Replace("&nbsp;", "")))
{
strJson.Append("\"img\":\"" + entity.img.Replace("&nbsp;", "") + "\",");
}
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列表数据转换成树形结构的更多相关文章

  1. 使用js将后台返回的数据转换成树形结构

    将类似如下数据转换成树形的数据: [ { id: 1, name: '1', }, { id: 2, name: '1-1', parentId: 1 }, { id: 3, name: '1-1-1 ...

  2. javascript将平行的拥有上下级关系的数据转换成树形结构

    转换函数 var Littlehow = {}; /** * littlehow 2019-05-15 * 平行数据树形转换器 * @type {{format: tree.format, sort: ...

  3. js将有父子关系的数据转换成树形结构数据

    js将有父子关系的数据转换成树形结构数据 比如如下基本数据: let allDatas = [ { id: 3, name: 'bbbb', parendId: 1 }, { id: 2, name: ...

  4. 记一则 Lambda内递归调用方法将集合对象转换成树形结构

    public dynamic GetDepartments(string labID) { List<int> usedIDs = new List<int>(); //缓存已 ...

  5. Word排版成树形结构技巧

    初始文字 A A1 A2 B1 B1 B2 C C1 希望效果 关健设置

  6. dom4j 解析字符串成树形结构

    引入maven依赖: <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artif ...

  7. Java数据封装成树形结构,多级

    参考地址:https://blog.csdn.net/chendu500qiang/article/details/91493147 1.实体类 @data public class PublishS ...

  8. idea目录结构子目录在父目录后面跟着改成树形结构

    1.点击项目窗口的设置按钮 2.取消Compact Middle Packages选项的对勾即可

  9. Java编程:将具有父子关系的数据库表数据转换为树形结构,支持无限层级

    在平时的开发工作中,经常遇到这样一个场景,在数据库中存储了具有父子关系的数据,需要将这些数据以树形结构的形式在界面上进行展示.本文的目的是提供了一个通用的编程模型,解决将具有父子关系的数据转换成树形结 ...

随机推荐

  1. Arrays和String单元测试(课下作业,选做)

    在IDEA中以TDD的方式对String类和Arrays类进行学习- 测试相关方法的正常,错误和边界情况 - String类 - charAt - split - Arrays类 - sort - b ...

  2. halcon+WinForm打开摄像头

    注意引用halcon.dll,项目属性平台一致(X64) using HalconDotNet;//引用halcon using System.Threading;//引用线程 namespace M ...

  3. 使用VLC Activex插件做网页版视频播放器

    网上找的一个小例子,包括时长播放时间等等都有. mrl可以设置本地文件,这样发布网站后只能播放本地有的文件, 如果视频文件全在服务器上,其他电脑想看的话,则可以IIS上发布个视频文件服务器,类似htt ...

  4. mac-redis安装与使用

    安装: brew install redis --------------- 使用: 启动redis-server: sudo redis-server 连接:./redis-cli -h 127.0 ...

  5. go语言基础知识笔记(二)之数组和切片

    数组和切片知识用的也是比较多,的给我们工作带来很大的便利 (一) 数组 定义:在golang中数组的长度是不可变,数组存放要求是同一种数据类型 //golang中数组定义的四种方法1.先声明,后赋值 ...

  6. Elasticsearch 快速开始

    Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎. 查询 : Elasticsearch 允许执行和合并多种类型的搜索 - 结构化.非结构化.地理位置.度量指标 - ...

  7. VMware 安装虚拟机系统

    Ø  简介 本文主要介绍使用 VMware 安装虚拟机系统. 1.   创建虚拟机 1)   打开VMware,创建新虚拟机 2)   选择需要安装系统的iso镜像文件 3)   选择需要安装的Win ...

  8. Koa与Node.js开发实战(2)——使用Koa中间件获取响应时间(视频演示)

    学习架构: 在实战项目中,经常需要记录下服务器的响应时间,也就是从服务器接收到HTTP请求,到最终返回给客户端之间所耗时长.在Koa应用中,利用中间件机制可以很方便的实现这一功能.代码如下所示: 01 ...

  9. 《11招玩转网络安全》之第五招:DVWA命令注入

    首先还是将DVWA的安全级别设置为Low,然后单击DVWA页面左侧的Command Injection按钮. ​ 图5-1  Low级别的命令注入 这个就是最典型的命令注入接口.在文本框中输入一个IP ...

  10. day 23-1 类的命名空间、组合

    类的命名空间 类与对象命名空间 类里 可以定义两种属性 静态属性 动态属性 类中的静态变量 可以被对象和类调用对于不可变数据类型来说,类变量最好用类名操作对于可变数据类型来说,对象名的修改是共享的,重 ...