我有一些像JSON:
{
"companyName": "Software Inc.",
"employees": [
{
"employeeName": "Sally"
},
{
"employeeName": "Jimmy"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想将其反序列化为:
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; }
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能让JSON.NET设置"雇主"参考?我尝试使用a 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;
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您更喜欢语法,也可以使用一行语句:
company.employees.ForEach(e => e.employer = company);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
950 次 |
| 最近记录: |