Вот мой простой User
POCO-класс:
///
/// The User class represents a Coderwall User.
///
public class User
{
///
/// A User's username. eg: "sergiotapia, mrkibbles, matumbo"
///
public string Username { get; set; }
///
/// A User's name. eg: "Sergio Tapia, John Cosack, Lucy McMillan"
///
public string Name { get; set; }
///
/// A User's location. eh: "Bolivia, USA, France, Italy"
///
public string Location { get; set; }
public int Endorsements { get; set; } //Todo.
public string Team { get; set; } //Todo.
///
/// A collection of the User's linked accounts.
///
public List Accounts { get; set; }
///
/// A collection of the User's awarded badges.
///
public List Badges { get; set; }
}
И метод, который я использую для десериализации ответа JSON в объект User
(это фактический вызов JSON находится здесь):
private User LoadUserFromJson(string response)
{
var outObject = JsonConvert.DeserializeObject(response);
return outObject;
}
Это вызывает исключение:
Невозможно десериализовать текущий объект JSON (например, {"имя":"значение"}) в тип 'System.Collections.Generic.List'1[CoderwallDotNet.Api.Models.Account]' потому что для этого типа требуется массив JSON (например, [1,2,3]) для десериализации правильно.
Чтобы исправить эту ошибку, измените JSON на массив JSON. (например, [1,2,3]) или измените десериализованный тип так, чтобы он был обычным Тип .NET (например, не примитивный тип, такой как целое число, а не коллекция например массив или список), который можно десериализовать из JSON объект. JsonObjectAttribute также может быть добавлен к типу, чтобы заставить его для десериализации из объекта JSON. Путь 'accounts.github', строка 1, позиция 129.
Поскольку я никогда раньше не работал с этим методом DeserializeObject, я застрял здесь.
Я убедился, что имена свойств в классе POCO совпадают с именами в ответе JSON.
Что я могу попробовать десериализовать JSON в этот класс POCO?