我遇到了RestSharp反序列化返回內容到我的類的問題。從我所有的搜索中,似乎我正確地做到了這一點。我寧願使用RestSharp的反序列化器,也不願意回退到像Newstonsoft的Json.NET這樣的其他軟件包。RestSharp不反序列化JSON對象列表,始終爲空
什麼我做的是做一個API請求GoToWebinar爲計劃網絡研討會的全部名單:
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);
正如你看到的,我想獲得對象RootObject「列表(如下圖所示)。我在response2.Content接收以下JSON響應:
[
{
"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"
}
]
我創建使用http://json2csharp.com使用上述JSON結果中的下列對象:
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; }
}
問題是response2.Data總是空。出於某種原因,反序列化失敗了,我不知道爲什麼。我的目標是能夠使用foreach循環遍歷結果:
foreach(RootObject r in response2.Data)
{
lblGoToWebinar.Text += r.webinarKey.ToString() + ", ";
}
爲什麼反序列化失敗的任何想法?
預先感謝您!
你可以調試並查看'response2'對象來查看什麼是原始值?你應該看看調試器是否有錯誤。 – agarcian 2012-04-26 18:00:37
謝謝@agarcian!根據你的建議,我開始搜索一些內部錯誤,並在下面的答案中看到它。 – 2012-04-27 16:29:43
很高興它解決了! – agarcian 2012-04-29 01:10:25