RestSharp nie deserializujący JSON Object List, zawsze Null
Mam problem z deserializacją treści powrotu do moich klas w RestSharp. Ze wszystkich moich poszukiwań wydaje się, że robię to poprawnie. Wolałbym raczej użyć deserializera w RestSharp niż w przypadku innego pakietu, takiego jak Json.NET w Newstonsoft.
To, co robię, to wysyłanie żądania API do GoToWebinar dla całej listy zaplanowanych webinarów:
<code>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); </code>
Jak widać, chciałbym uzyskać listę obiektów „RootObject” (jak pokazano poniżej). W odpowiedzi otrzymuję następującą odpowiedź JSON2. Treść:
<code>[ { "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" } ] </code>
Użyłem następujących obiektówhttp://json2csharp.com użycie powyższych wyników JSON:
<code>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; } } </code>
Problemem jest response2.Data ma zawsze wartość Null. Z jakiegoś powodu deserializacja nie powiodła się i nie wiem dlaczego. Moim celem jest wykorzystanie pętli foreach do iteracji wyników:
<code>foreach(RootObject r in response2.Data) { lblGoToWebinar.Text += r.webinarKey.ToString() + ", "; } </code>
Jakieś pomysły, dlaczego deserializacja zawodzi?