【发布时间】:2025-12-25 22:00:10
【问题描述】:
我有一个以 JSON 格式获取的父子列表
public class Item
{
public Item()
{
this.Items = new List<Item>();
}
public string Name { get; set; }
public DateTime Created { get; set; }
public string Content { get; set; }
public string UserId { get; set; }
List<Item> Items { get; set; }
}
现在想象一下,我得到一个 JSON,我将反序列化为
string json = "json in here"
List<Item> listItems = JsonConvert.Dezerialize<List<Item>>(json);
我的问题:我怎样才能解析List<Item> 并动态添加 ID 到它,所以它会是这样的?
public class Item
{
public Item()
{
this.Items = new List<Item>();
}
public string Id { get; set; }
public string ParentId { get; set; }
public string Name { get; set; }
public DateTime Created { get; set; }
public string Content { get; set; }
public string UserId { get; set; }
List<Item> Items { get; set; }
}
Id 是项目 Id(例如可以是 Guid),ParentId 是项目的父项的 Id。如果 Item 没有父级,则 ParentId 为空。如果 ParentId 为 null Item 则为*项目。可以有多个父项。
【问题讨论】:
-
只需使用新属性 ID 更新您的 dto 类,而不是通过设置值更新您的数据并将其序列化。相关:*.com/questions/7472486/…
-
你是问对象反序列化后如何手动分配ID?递归可行,但你到底想要完成什么?几乎无法保证在任何时候运行相同的 ID 都会应用于相同的实例,因此它们并不能真正标识元素。解决的高阶问题是什么?
-
Name是唯一的吗? -
每个项目都包含一个
List<Item>?这对我来说没有意义。所以每个Item的Items都包含一个Item(本身)? -
@cdsln:这是一个树形结构。任何给定节点都有一组子节点。
标签: c# parent-child