在c#中将简单的Json转换为复杂对象

Var*_*run 0 c# json

我的Json是

{
Id: 1,
Name:'Alex',
ConnectedObjectName:'Obj',
ConnectedObjectId: 99
}
Run Code Online (Sandbox Code Playgroud)

我希望将此JSON转换为以下对象

Class Response
{
int Id,
string Name,
ConnectedObject Obj
}

Class ConnectedObject
{
string COName,
int COId
}
Run Code Online (Sandbox Code Playgroud)

有没有办法使用DataContractJsonSerializer实现这一点

Mar*_*ell 7

大多数串行想要的对象和数据共享的布局-因此大多数JSON序列化会想ConnectedObjectNameConnectedObjectId根对象,而不是内部对象上存在.通常,如果数据不适合您想要映射到的数据,最好的方法是使用与数据和序列化器匹配的单独DTO模型,然后从DTO模型映射到实际模型你想以编程方式,或使用像auto-mapper这样的工具.

如果您使用DTO方法,那么几乎任何 JSON解串器都可以.Json.NET是一个很好的默认.DataContractJsonSerializer会的方式方法我JSONserializers考虑的名单上了.