c# - JavascriptSerializer、Deserializer,无法反序列化我的对象

标签 c# .net json

我无法反序列化我的自定义对象。

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/

相关文章:

c# - 如何在 C# 中复制数组

c# - 创建倒计时 C#

C# foreach 内的线程安全闭包

.net - 字体文件中的什么属性使程序决定模拟粗体?

jQuery 1.4 破坏了我的程序

security - JSON 响应周围的注释 block

c# - 无锁、可等待、独占的访问方式

c# - 从Web服务返回json数据

c# - .Net 中 Dictionary<int,int> 的线程安全

java - 如何强制java中的FlexJson将json对象反序列化为字符串?