我無法使用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