Использование JsonConvert.DeserializeObject для десериализации Json в POCO-класс C#

Вот мой простой UserPOCO-класс:

/// 
/// 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?

60
задан RAM 18 March 2019 в 09:52
поделиться