Tôi đang gặp một vấn đề với RestSharp deserializing nội dung trả về vào các lớp học của tôi. Từ tất cả các tìm kiếm của tôi có vẻ như tôi đang làm điều này một cách chính xác. Tôi sẽ sử dụng deserializer của RestSharp hơn là phải quay trở lại một gói khác như Json.NET của Newstonsoft.RestSharp không deserializing JSON Object List, luôn luôn Null
gì tôi đang làm là thực hiện một yêu cầu API để GoToWebinar cho tất cả các danh sách các hội thảo dự kiến:
var client = new RestClient(string.Format("https://api.citrixonline.com/G2W/rest/organizers/{0}/upcomingWebinars", "300000000000239000"));
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "OAuth oauth_token=" + System.Configuration.ConfigurationManager.AppSettings["GoToWebinar"]);
var response2 = client.Execute<List<RootObject>>(request);
Như bạn thấy tôi muốn để có được một danh sách các đối tượng 'RootObject' (như hình dưới đây). Tôi nhận được phản ứng JSON sau trong response2.Content:
[
{
"webinarKey":678470607,
"subject":"Easton's Wild Rice Cooking Demo",
"description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
"organizerKey":300000000000239551,
"times":[{"startTime":"2012-05-09T15:00:00Z","endTime":"2012-05-09T16:00:00Z"}],
"timeZone":"America/Denver"
},
{
"webinarKey":690772063,
"subject":"Easton's Match Making Service",
"description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
"organizerKey":300000000000239551,
"times":[{"startTime":"2012-05-09T15:00:00Z","endTime":"2012-05-09T16:00:00Z"}],
"timeZone":"America/Denver"
}
]
Tôi tạo ra các đối tượng sau đây sử dụng http://json2csharp.com sử dụng kết quả JSON trên:
public class RootObject
{
public int webinarKey { get; set; }
public string subject { get; set; }
public string description { get; set; }
public long organizerKey { get; set; }
public List<Time> times { get; set; }
public string timeZone { get; set; }
}
public class Time
{
public string startTime { get; set; }
public string endTime { get; set; }
}
Vấn đề là response2.Data luôn là Null. Đối với một số lý do deserialization thất bại và tôi không biết tại sao. Mục tiêu của tôi là có thể sử dụng vòng lặp foreach để lặp qua các kết quả:
foreach(RootObject r in response2.Data)
{
lblGoToWebinar.Text += r.webinarKey.ToString() + ", ";
}
Bất kỳ ý tưởng nào về việc tại sao quá trình deserialization bị lỗi?
Cảm ơn bạn trước!
Bạn có thể gỡ lỗi và xem đối tượng 'response2' để xem giá trị thô không? Bạn sẽ thấy nếu có lỗi với trình gỡ lỗi. – agarcian
Cảm ơn bạn @agarcian! Dựa trên đề xuất của bạn, tôi bắt đầu tìm kiếm một số lỗi bên trong và tìm ra nó như được nhìn thấy trong câu trả lời của tôi bên dưới. –
vui vì nó đã hoạt động! – agarcian