序列化/反序列化List <t>到JSON </t>

时间:2011-05-26 22:35:45

标签: c# json serialization generic-list

我希望能够序列化/反序列化我到目前为止的通用列表

    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 :(真的会让任何见解变得更好。

更新:即使是基本的序列化/反序列化工作,也不是我发布此内容的那一天。 :)

1 个答案:

答案 0 :(得分:10)

尝试使用此尺寸:

public static T ToObject<T>(this string obj, int recursionDepth = 100)
{
    JavaScriptSerializer serializer = new JavaScriptSerializer();
    serializer.RecursionLimit = recursionDepth;
    return serializer.Deserialize<T>(obj);
}

然后像这样使用它:

mystring.ToObject<List<MyClass>>();