把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 > 0) { 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 - 1, 1); } 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 > 0) { 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 - 1, 1); } strJson.Append("]"); return strJson.ToString(); } }
原文地址:https://www.cnblogs.com/zhaops/p/10677718.html
时间: 2024-10-06 18:27:21