我无法使用DataContractJsonSerializer类反序列化混合类型的JSON数组。我花了很多时间寻找解决方案,但我想我会继续在这里问。反序列化混合类型的JSON数组
基本上,我得到一个像下面的JSON字符串。我想要数组反序列化到一个列表中,其中位置0有一个Int32,位置1有一个字符串,位置2有我的自定义类的实例。
[
2,
"Mr. Smith",
{
"num":169,
"name":"main street",
"state":66
}
]
如果我只是创建像这样一个连载:但是在位置2的位置是1
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<object>))
我实际上是在位置0获得一个Int32和字符串我只是得到一个空对象。
有谁知道我想要做甚么可能吗?我无法控制我正在使用的JSON的结构。如果可能,我希望在不使用第三方程序集的情况下完成此操作。
这也是最初想到的。问题是像这样的数组不会反序列化到一个类。序列化程序强制将其反序列化为数组。当我尝试这个时,我得到错误“期待状态'元素'..遇到'文本'的名称'',命名空间''。” – Mike 2010-10-11 00:55:35
请看看我最后的编辑。我忘了它是一组元素...... – Lorenzo 2010-10-11 00:58:32
洛伦佐,感谢代码示例。这似乎也不管用。这将生成一个int成员= 0的MyClass实例,其他两个成员为null。东西仍然缺失... – Mike 2010-10-11 03:12:38