我有一个API方法,使用我的帮助方法将模型作为json返回
public static JsonResult ParseObjectToJsonResult<T>(T objectToParse) where T : class
{
return new JsonResult(JsonConvert.SerializeObject(objectToParse));
}
然后在移动端,我试图将这个Json反序列化为相同的模型(简化):
return JsonConvert.DeserializeObject<T>([string with response]);
不幸的是我收到了错误,我不确定为什么......
Newtonsoft.Json.JsonSerializationException:转换值时出错 “{” 用户ID “:” 00f0299f-3210-45bb-ab6f-5995de30bf26" , “IsSuccess”:真, “消息”: “”}” 输入'Models.APIResponseModels.LoginResponseModel'。路径'',行 1,位置91。
我的模型看起来像:
JsonProperty(PropertyName = "UserId")]
public string UserId { get; set; }
[JsonProperty(PropertyName = "IsSuccess")]
public bool IsSuccess { get; set; }
[JsonProperty(PropertyName = "Message")]
public string Message { get; set; }
有什么想法吗?
答案 0 :(得分:8)
变化:
return new JsonResult(JsonConvert.SerializeObject(objectToParse));
到
return new JsonResult(objectToParse);
您需要对数据进行双重序列化。 JsonConvert
将其序列化为字符串,然后JsonResult
获取该字符串并将其再次序列化。
(另外,将objectToParse
重命名为其他内容。它没有被解析。解析是将字符串转换为某种数据结构的一组步骤。 #39;转向另一个方向 - 数据结构为字符串。)