Đây là đơn giản lớp User
POCO tôi:Sử dụng JsonConvert.DeserializeObject để deserialize JSON để một lớp 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; }
}
Và phương pháp tôi đang sử dụng để deserialize một phản ứng JSON thành đối tượng User
(thực tế JSON call is here này):
private User LoadUserFromJson(string response)
{
var outObject = JsonConvert.DeserializeObject<User>(response);
return outObject;
}
này bắn một ngoại lệ:
Không thể deserialize đối tượng JSON hiện tại (ví dụ: {"name": "value"}) thành loại 'System.Collections.Generic.List`1 [CoderwallDotNet.Api.Models.Account]' vì loại yêu cầu mảng JSON (ví dụ: [1,2,3 ]) để deserialize chính xác.
Để khắc phục lỗi này, hãy thay đổi JSON thành một mảng JSON (ví dụ [1,2,3]) hoặc thay đổi loại được loại bỏ để nó là loại thông thường .NET (ví dụ: không phải kiểu nguyên thủy như số nguyên , không phải bộ sưu tập loại như một mảng hoặc Danh sách) có thể được deserialized từ một đối tượng JSON . JsonObjectAttribute cũng có thể được thêm vào kiểu để buộc nó để deserialize từ một đối tượng JSON. Đường dẫn 'accounts.github', dòng 1, vị trí 129.
Chưa bao giờ làm việc với phương pháp DeserializeObject này trước đây, tôi bị kẹt ở đây.
Tôi đã đảm bảo rằng tên thuộc tính trong lớp POCO giống với tên trong phản hồi JSON.
Tôi có thể cố gắng deserialize JSON vào lớp POCO này như thế nào?
Dường như tôi đến trễ, nhưng hãy xem câu trả lời của tôi. sử dụng 'JsonProperty' dễ dàng hơn nhiều (và có thể đọc được) hơn là viết' JsonConverter' –
Có thể bạn đang xem xét một thứ như thế này. http://stackoverflow.com/questions/25672338/dynamically-deserialize-json-into-any-object-passed-in-c-sharp – Jim