gpt4 book ai didi

c# - 如何使用 JSON.NET 反序列化并保留父对象

转载 作者:太空狗 更新时间:2023-10-29 21:58:22 25 4
gpt4 key购买 nike

我有一些像这样的 JSON:

{
"companyName": "Software Inc.",
"employees": [
{
"employeeName": "Sally"
},
{
"employeeName": "Jimmy"
}
]
}

我想将它反序列化为:

public class Company
{
public string companyName { get; set; }
public IList<Employee> employees { get; set; }
}

public class Employee
{
public string employeeName { get; set; }
public Company employer { get; set; }
}

如何让 JSON.NET 设置“雇主”引用?我尝试使用 CustomCreationConverter,但是 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) 方法不包含对当前的任何引用父对象。

最佳答案

如果您在反序列化过程中尝试这样做,那只会让您头疼。在反序列化之后执行该任务会容易得多。做这样的事情:

var company = //deserialized value

foreach (var employee in company.employees)
{
employee.employer = company;
}

或者一行代码,如果你更喜欢这样的语法:

company.employees.ForEach(e => e.employer = company);

关于c# - 如何使用 JSON.NET 反序列化并保留父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16438359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com