Usando JsonConvert.DeserializeObject para desserializar o Json para uma classe C # POCO

Aqui está o meu simplesUser Classe POCO:

/// <summary>
/// The User class represents a Coderwall User.
/// </summary>
public class User
{
    /// <summary>
    /// A User's username. eg: "sergiotapia, mrkibbles, matumbo"
    /// </summary>
    public string Username { get; set; }

    /// <summary>
    /// A User's name. eg: "Sergio Tapia, John Cosack, Lucy McMillan"
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// A User's location. eh: "Bolivia, USA, France, Italy"
    /// </summary>
    public string Location { get; set; }

    public int Endorsements { get; set; } //Todo.
    public string Team { get; set; } //Todo.

    /// <summary>
    /// A collection of the User's linked accounts.
    /// </summary>
    public List<Account> Accounts { get; set; }

    /// <summary>
    /// A collection of the User's awarded badges.
    /// </summary>
    public List<Badge> Badges { get; set; }

}

E o método que estou usando para desserializar uma resposta JSON em umUser objeto (este realChamada JSON está aqui):

private User LoadUserFromJson(string response)
{
    var outObject = JsonConvert.DeserializeObject<User>(response);
    return outObject;
}

Isso dispara uma exceção:

Não é possível desserializar o objeto JSON atual (por exemplo, {"name": "value"}) no tipo 'System.Collections.Generic.List`1 [CoderwallDotNet.Api.Models.Account]' porque o tipo requer um array JSON (por exemplo, [ 1,2,3]) para desserializar corretamente.

Para corrigir esse erro, altere o JSON para um array JSON (por exemplo, [1,2,3]) ou altere o tipo desserializado para que seja um tipo normal do .NET (por exemplo, não um tipo primitivo como inteiro, não um tipo de coleção como uma matriz ou lista) que pode ser desserializada de um objeto JSON. JsonObjectAttribute também pode ser adicionado ao tipo para forçá-lo a desserializar de um objeto JSON. Caminho 'accounts.github', linha 1, posição 129.

Nunca tendo trabalhado com esse método DeserializeObject antes, estou meio preso aqui.

Eu me certifiquei de que os nomes das propriedades na classe POCO são os mesmos que os nomes na resposta JSON.

O que posso tentar desserializar JSON para esta classe POCO?

questionAnswers(7)

yourAnswerToTheQuestion