如果您有一个具有递归parentId节点的JSON数据,并且您需要将其转换为C#实体类,则可以使用以下方法:
- 创建一个类来表示JSON对象的节点,包括它的属性和子节点。
- public class Node
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public int ParentId { get; set; }
- public List<Node> Children { get; set; }
- }
- 使用
Newtonsoft.Json或System.Text.Json等JSON解析器将JSON数据反序列化为List<Node>对象。
List<Node> nodes = JsonConvert.DeserializeObject<List<Node>>(json);
3、创建一个方法来将List<Node>转换为具有递归结构的树形结构
- public static List<Node> BuildTree(List<Node> nodes)
- {
- var lookup = nodes.ToLookup(node => node.ParentId);
- Func<int?, List<Node>> build = null;
- build = pid =>
- lookup[pid]
- .Select(node => new Node()
- {
- Id = node.Id,
- Name = node.Name,
- ParentId = node.ParentId,
- Children = build(node.Id)
- })
- .ToList();
- return build(null);
- }
该方法使用LINQ的ToLookup方法将节点分组为它们的父节点ID,然后使用递归方法来构建树形结构。
- 使用
BuildTree方法将List<Node>转换为具有递归结构的树形结构。List<Node> tree = BuildTree(nodes);现在您可以使用
tree对象来访问具有递归结构的树形结构,并按照您的需要对其进行处理。请注意,这只是一种处理具有递归
parentId节点的JSON数据并将其转换为C#实体类的方法。具体实现可能因您的实际需求而异。
c# 遍历递归list
- public class Item
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public List<Item> Children { get; set; }
- }
-
- public static void TraverseItems(List<Item> items)
- {
- foreach (var item in items)
- {
- Console.WriteLine(item.Name);
- TraverseItems(item.Children);
- }
- }



![战神引擎传奇手游【黯晶灭世[白猪3.1]】最新整理Win系特色服务端+安卓苹果双端+GM授权后台+详细搭建教程](https://cdn.jxasp.com:9143/image/20251028/0F2E0E55BA6157D5F76B8125D0A511AC.jpg)
















