【发布时间】:2011-05-26 22:35:45
【问题描述】:
我希望能够序列化/反序列化一个通用列表,到目前为止我是这样的
public static string ToJson(this object obj, int recursionDepth = 100)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RecursionLimit = recursionDepth;
return serializer.Serialize(obj);
}
public static List<T> ToListObject<T>(this string obj, int recursionDepth = 100)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RecursionLimit = recursionDepth;
List<T> returnList = serializer.Deserialize<List<T>>(obj);
return returnList;
}
我也试过(List<T>)serializer.DeserializeObject(obj)
使用Deserialize,它反序列化错误(到一个空的List<T> 对象),而使用DeserializeObject,它抛出一个错误,提示“无法将给定的字符串反序列化为T 数组”。而且我将无法使用 IOStream :( 真的会获得任何见解。
更新:即使是基本的序列化/反序列化工作,我发布此内容的时间也不是我的一天。 :)
【问题讨论】:
-
你看过this的文章吗?
-
您要反序列化的 JSON 字符串是什么?您传递给 ToListObject 方法的类型 T 是什么?
-
对我不起作用,因为它使用 MemoryStream(从它读取,所以它在一段时间内不可用),我将无法使用 IOStream。
-
WCarlosfigueira: T 是泛型类名,可以是任何定义的类
-
您是否考虑过创建JavaScriptConverter?
标签: c# json serialization generic-list