我无法反序列化我的自定义对象。
public class UserInfo
{
public int Id1 { get; set; }
public string Code { get; set; }
public int Id2 { get; set; }
public List<string> Roles { get; set; }
public string Eg1 { get; set; }
public DateTime Time{ get; set; }
public string Eg2 { get; set; }
public string Version { get; set; }
}
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Deserialize<UserInfo>(raw);
反序列化抛出异常
“无法将‘System.String’类型的对象转换为‘UserInfo’类型”
JSON 内容:
"\"{\\\"Id1\\\":0,\\\"Code\\\":null,\\\"Id2\\\":0,\\\"Roles\\\":null,\\\"Eg1\\\":\\\"Eg2\\\",\\\"Time\\\":\\\"\\\\/Date(-62135596800000)\\\\/\\\",\\\"Version\\\":\\\"1.0.0.0\\\"}\""
注意:如果不清楚,请告诉我。我会编辑问题。
-- 已编辑。 ID2 更改为 Id2。真正的类在变量名方面是不同的。因此问题。
最佳答案
您的字符串是一个 C# 字符串,其中包含一个包含 JSON 的 JavaScript 字符串。除了修复您要发送的内容外,以下是反序列化的方式:
var jsonString = serializer.Deserialize<string>(raw);
return serializer.Deserialize<UserInfo>(jsonString);
关于c# - JavascriptSerializer、Deserializer,无法反序列化我的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12792083/