【发布时间】:2017-02-22 16:11:34
【问题描述】:
目前,我有一些 JSON 数据正在尝试使用 DataContractJsonSerializer 类进行反序列化。但是,数据中的一个数组包含多种类型的对象。有没有办法正确反序列化这些数据?我知道a very similar question exists,但我不希望使用 Json.NET 或任何其他第三方库。
编辑:一个小例子:
在本例中,假设 JSON 的格式为 [{"foo":string},{"bar":string},{"foo":string},{"foo":string},...],其中每个元素的格式为 {"foo":string} 或 {"bar":string}。然后,合同可以这样设置:
[DataContract]
class Foo { [DataMember] public string foo; }
[DataContract]
class Bar { [DataMember] public string bar; }
在这种情况下,我的问题是,如何反序列化 Foos 和 Bars 的数组?
【问题讨论】:
-
However, one of the arrays in the data contains multiple types of objects-- 你能举个例子吗?这些对象类型有何不同?如果由于某种原因它们完全不同,您可以考虑dynamic类型。发布 JSON 样本和您尝试将其反序列化为的模型会很有帮助。 -
@ShaneRay 加了一个小例子,我的
Foo和Bar的属性完全不同。
标签: c# json-deserialization datacontractjsonserializer