這裏是我的簡單User
POCO類:使用JsonConvert.DeserializeObject反序列化JSON來一個C#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; }
}
而且我使用反序列化JSON響應爲User
對象(這實際JSON call is here方法):
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類型(例如不是原始類型像整數,而不是像數組或列表的集合 類型),該對象可以從JSON 對象反序列化。 JsonObjectAttribute也可以添加到類型中,以強制它從一個JSON對象反序列化。路徑「accounts.github」,1號線, 位置129
從未接觸過這種DeserializeObject方法之前工作過,我有種陷在這裏。
我確定POCO類中的屬性名稱與JSON響應中的名稱相同。
我可以嘗試將JSON反序列化到此POCO類中嗎?
似乎我遲到了,但看到我的答案。使用'JsonProperty'比編寫'JsonConverter'更容易(和可讀) –
然後你可能會看到類似的東西。 http://stackoverflow.com/questions/25672338/dynamically-deserialize-json-into-any-object-passed-in-c-sharp – Jim