我有一个对象如下:
Organization:
{ Id : 1, Name : name, OrgType : { typeId : 1, name: tname }, employees : [{id:1, name:sm },{id:2, name:sm1 },{id:3, name:sm3 }]
所以,这里的复杂对象包含Organization,OrgType和Employee列表。
问题是,我从一个服务响应中收到此集合,而我的应用程序具有不同的对象结构。
如何将上述对象反序列化为以下结构:
Organization :
Id changed to OrgId
Name as Name,
OrgType object changed to Type object
Employees List object changed to EmpList object
In Type object - typeId changed to OtId, name changed to Name.
Employee object - id changed Id, name changed to EmployeeName
这里,如何反序列化为上面的对象,其中不同的属性也包含复杂的对象。
答案 0 :(得分:-1)
选项1。
您可以反序列化为dynamic
类型,然后将其映射到目标模型。
e.g。
dynamic tempObject = JObject.Parse(serializedString);
或选项2。
如果您知道源模型将保持不变,则可以创建一个与传入模型具有相同结构的模型,并反序列化为该模型。
然后 - 两个选项
您可以使用AutoMapper将源对象映射到目标对象。 有很多资源都有关于如何实现这一点的详细信息 - 以下是使用动态源对象的示例:https://github.com/AutoMapper/AutoMapper/wiki/Dynamic-and-ExpandoObject-Mapping