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