我无法反序列化我的自定义对象.
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);
Run Code Online (Sandbox Code Playgroud)
Deserialize正在抛出异常
"无法将'System.String'类型的对象转换为'UserInfo'类型"
JSON内容:
"\"{\\\"Id1\\\":0,\\\"Code\\\":null,\\\"Id2\\\":0,\\\"Roles\\\":null,\\\"Eg1\\\":\\\"Eg2\\\",\\\"Time\\\":\\\"\\\\/Date(-62135596800000)\\\\/\\\",\\\"Version\\\":\\\"1.0.0.0\\\"}\""
Run Code Online (Sandbox Code Playgroud)
注意:如果不清楚,请告诉我.我会编辑这个问题.
- 编辑.ID2更改为Id2.真正的类在变量名称方面是不同的.因此这个问题.
Jac*_*cob 10
您的字符串是一个C#字符串,其中包含一个包含JSON的JavaScript字符串.如果没有修复您发送的内容,请按以下步骤进行反序列化:
var jsonString = serializer.Deserialize<string>(raw);
return serializer.Deserialize<UserInfo>(jsonString);
Run Code Online (Sandbox Code Playgroud)
您正在将Javascript字符串传递给反序列化器,因为您的对象位于转义字符串中.
取消它之后,这就是序列化程序收到的内容:
"{\"Id1\":0,\"Code\":null,\"Id2\":0,\"Roles\":null,\"Eg1\":\"Eg2\",\"Time\":\"\\/Date(-62135596800000)\\/\",\"Version\":\"1.0.0.0\"}"
你真正想要发送的是:
{"Id1":0,"Code":null,"Id2":0,"Roles":null,"Eg1":"Eg2","Time":"\/Date(-62135596800000)\/","Version":"1.0.0.0"}"
| 归档时间: |
|
| 查看次数: |
11589 次 |
| 最近记录: |