2015-12-07 157 views
0

This Json.NET頁面沒有明確提及IEnumerable的支持。但是測試,它似乎工作。我可以依靠這個嗎?Json.NET是否支持序列化/序列化到IEnumerable <T>?

+2

是的。 ['IEnumerable '](https://msdn.microsoft.com/en-us/library/9eekhta0%28v=vs.110%29.aspx)從'IEnumerable'繼承:'public interface IEnumerable :IEnumerable'。從Json.NET文檔:[序列化指南:IEnumerable,列表和數組](http://www.newtonsoft.com/json/help/html/SerializationGuide.htm#Lists):**。NET列表(類型從IEnumerable繼承)和.NET數組被轉換爲JSON數組。** – dbc

回答

0

序列化是沒有問題的,因爲它使用了序列化對象的類型

一個通用的IEnumerable(IEnumerable的<>)可以反序列化,因爲它的內部類型是不夠的deserializator明白讀什麼,但通用的IEnumerable只是需要一些幫助來反序列化,像一個明確的JsonConverter

當然我指的是序列化的

接口/反序列化類型的對象,而不是JObject

這類似於你一個問題:JSON.NET - how to deserialize collection of interface-instances?

和此博客文章進一步解釋:http://blog.greatrexpectations.com/2012/08/30/deserializing-interface-properties-using-json-net/

+0

Json.NET以某種方式設法做到這一點,即使沒有提到顯式的JsonConverter。爲什麼? – Superhaxor4

+0

你指的是泛型還是非泛型? 無論如何進入調試器並檢查生成到你的ienumerable中的元素來查看它們的類型 –