【发布时间】:2019-12-16 10:15:45
【问题描述】:
我已经使用 JavaScriptSerializer 序列化了 List<Tuple<long, string, int>> obj。
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Serialize(dataToSerialize as IEnumerable);
我得到了字符串:
[{"Item1":0,"Item2":"UserModifiedId","Item3":1},{"Item1":-1,"Item2":"","Item3":0},{"Item1":-1,"Item2":"","Item3":0}]
当我尝试使用以下方法对其进行反序列化时:
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Deserialize<List<T>>(strObject);
我得到以下例子:
No parameterless constructor defined for type of 'System.Tuple`3[[System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'.```
Can anyone help me with this Issue (to keep using JavaScriptSerializer)?
【问题讨论】:
-
不要使用 JavaScriptSerializer。它已经过时了。甚至 ASP.NET Web API 和 2.2 之前的所有 ASP.NET Core 版本都使用 Json.NET。它是 .NET 中事实上的标准 JSON 库。除此之外,还需要在反序列化时指定类型
标签: c# unit-testing javascriptserializer