2015-12-07 121 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中的元素来查看它们的类型 –