【发布时间】:2015-05-21 15:13:13
【问题描述】:
我创建了一个名为RESTObjectBase 的类。该类由任意数量的其他类继承,包括人员、地址、电话号码等信息。
我创建了一个List<RestObjectBase>,其中包含一个或多个此类对象,并通过 REST 调用将其传递回前端。
返回的JSON如下:
{
"Items":[
{
"__type":"AnyObjectInheritedFromBaseClass",
"ObjectType":3,
"First_Name":"",
"Last_Name":"",
}
],
"Status":0
}
我正在尝试在另一端反序列化它。我遇到了多个错误,包括“类型不能为空”,但这不是我的问题。
有没有办法将这种复杂的对象反序列化为原始类/列表。我为什么苦苦挣扎是因为它是最终继承 RESTObjectBase 的对象数组,而且反序列化看起来不够聪明,无法做到这一点。
反序列化的前端可以是任何设备或平台,所以我不能简单地使用 JSON.NET 之类的东西,因为它不受任何地方的支持。
我什至很乐意解构 JSON 并分别序列化数组中的每个项目,但我也不知道如何做到这一点。我可以使用该类型来确定如何反序列化它。
任何帮助将不胜感激。
【问题讨论】:
-
您使用的是什么序列化程序? “__type”参数的存在表明它是
DataContractJsonSerializer或JavaScriptSerializer。 -
查看 VS 中的“将 JSON 粘贴为类”功能。 blogs.msdn.com/b/webdev/archive/2012/12/18/…
-
谢谢。这两个都让我回到了正确的道路上。那和 2 个小时的睡眠 :)。
标签: c# json serialization