【发布时间】:2017-04-09 20:01:53
【问题描述】:
我正在尝试反序列化从 Web API 接收到的 JSON 字符串
try
{
string r = await App.client.GetUser();
App.Authentication = JsonConvert.DeserializeObject<ApiResult>(r);
await DisplayAlert("TEST", App.Authentication.ToString(), "OK");
Application.Current.MainPage = new Schedule();
}
catch (Exception p)
{
await DisplayAlert("Getting Authentication failed", p.ToString(), "TEST");
}
但是它给出了错误:Could not Cast or Convert System.String to App1.ApiResult
App.Authentication = JsonConvert.DeserializeObject<ApiResult>(r);
App.Authentication:
public static ApiResult Authentication = new ApiResult();`
JSON 字符串:
"\"{\\"状态\\":\\"0\\",\\"消息\\":{\\"ID\\":5,\\"FirstName\\": \\"John\\",\\"LastName\\":\\"Doe\\",\\"Email\\":\\"testemail@gmail.com\\",\\"密码\\ ":\\"testPass\\",\\"CreationDate\\":\\"2016-10-26T15:01:08\\",\\"RoleID\\":1,\\"doorCode\\ ":9999}}\""
ApiResult 类:
public class ApiResult
{
public string status { get; set; }
public Account message { get; set; }
}
帐户类别:
public class Account
{
public string status { get; set; }
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public DateTime CreationDate { get; set; }
public int RoleID { get; set; }
public int doorCode { get; set; }
}
完整的错误信息:
{"错误转换值 \"{\"状态\":\"0\",\"消息\":{\"ID\":5,\"FirstName\":\"John\",\"LastName\":\" Doe\",\"Email\":\"testemail@gmail.com\",\"Password\":\"testPass\",\"CreationDate\":\"2016-10-26T15:01:08\ ",\"RoleID\":1,\"doorCode\":9999}}\" 键入“App1.ApiResult”。路径'',第 1 行,位置 232。"}
【问题讨论】:
-
jsonformatter.curiousconcept.com string r = await App.client.GetUser();您可以在此处检查“r”值。
-
看起来它无法从您的消息中解析日期,请尝试在没有
CreationDate的情况下解析它。
标签: c# json serialization