Я получаю следующее исключение при попытке десериализации объекта json:
JsonSerializationException: Ошибка при преобразовании значения "[{" ID ":" 1111 "," FirstName ":". ","LastName": "test", "AdditionalName": "", "ID_PassportNum": "NONE", "DateOfBirth": ""}] для ввода 'System.Collections.Generic.List`1 [MoblieCP.Models.UserInfo]'. Path' 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 десериализации каждый раз.