尝试反序列化 json 对象时出现以下异常:
JsonSerializationException:转换值“[{“ID”:“1111”,“FirstName”:“。”,“LastName”:“test”,“AdditionalName”:“”,“ID_PassportNum”:“NONE”,“DateOfBirth”时出错:""}] 输入 'System.Collections.Generic.List`1[MoblieCP.Models.UserInfo]'。路径 'Data',第 1 行,位置 1303
我从服务器收到以下格式的响应:
{
"CodeError":0,
"Data":"[{\"ID\":\"1111\",\"FirstName\":\".\",\"LastName\":\"test\",\"AdditionalName\":\"\",\"ID_PassportNum\":\"NONE\",\"DateOfBirth\":\"\"}]",
"ErrorMessage":null
}
数据部分始终是一个列表,即使它有一个项目。
我构建了一个包含服务器响应的通用类:
public class GenericResponse<T>
{
[JsonProperty("CodeError")]
public ResponseCodes CodeError { get; set; }
[JsonProperty("Data")]
public T Data { get; set; }
[JsonProperty("ErrorMessage")]
public string ErrorMessage { get; set; }
}
这是我试图反序列化的部分:
jsonResult = await responseMessage.Content.ReadAsStringAsync().ConfigureAwait(false);
var json = JsonConvert.DeserializeObject<GenericResponse<List<UserInfo>>(jsonResult);
每次 JsonConverter 返回该异常。
当我尝试将“数据”本身(不是作为 GenericResponse 对象的一部分)反序列化为List<UserInfo>
时,我成功了。但我不想每次都进行 2 次反序列化。