我创建了一个名为RESTObjectBase
的类。此课程由任何其他类别继承,包括个人,地址,电话号码等信息。反序列化复杂JSON包含继承对象类型的数组
我创建了一个List<RestObjectBase>
,其中包含一个或多个此类型的对象,并通过REST调用将其传回到前端。
即返回JSON如下:
{
"Items":[
{
"__type":"AnyObjectInheritedFromBaseClass",
"ObjectType":3,
"First_Name":"",
"Last_Name":"",
}
],
"Status":0
}
我想在另一端反序列化这一点。我有多个错误,包括“类型不能为空”,但这不是我的问题。
有什么方法可以将这种复杂性的对象反序列化到原始类/列表。为什么我很挣扎?它是最终继承RESTObjectBase
的一组对象,它看起来并不像反序列化足够聪明。
反序列化的前端可能是任何设备或平台,所以我不能简单地使用像JSON.NET这样的东西,因为它在任何地方都不受支持。
我甚至会很乐意解构JSON并序列化数组中的每个项目,但我无法弄清楚如何做到这一点。我可以使用该类型来解决如何反序列化它。
任何帮助,将不胜感激。
你在使用什么串行器? “__type”参数的存在表明它是“DataContractJsonSerializer”或“JavaScriptSerializer”。 – dbc
查看VS中的“粘贴JSON作为类”功能。 http://blogs.msdn.com/b/webdev/archive/2012/12/18/paste-json-as-classes-in-asp-net-and-web-tools-2012-2-rc.aspx – Jeremy
谢谢。这两件事让我回到了正确的道路上。那和2个小时的睡眠:)。 –