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

Had*_*ara 5 c# serialization json 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;
    }
Run Code Online (Sandbox Code Playgroud)

我也试过了 (List<T>)serializer.DeserializeObject(obj)

使用Deserialize它反序列化错误(对于一个空List<T>对象)并用DeserializeObject它抛出一个错误,说'无法将给定的字符串反序列化为T'数组.而且我无法使用IOStream :(真的会让任何见解变得更好.

更新:即使基本的序列化/反序列化工作,我发布这个不是我的一天.:)

Ben*_*ull 10

试试这个尺码:

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

然后像这样使用它:

mystring.ToObject<List<MyClass>>();
Run Code Online (Sandbox Code Playgroud)