我在使用RestSharp将返回内容反序列化为我的类时遇到了问题。 从我所有的搜索中看来,我正在正确地执行此操作。 我宁愿使用RestSharp的反序列化器,而不是不得不退回到另一个包(如Newstonsoft的Json.NET)。
我所做的是向GoToWebinar发出API请求,以获取所有计划的网络研讨会列表:
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”对象的列表(如下所示)。 我收到了以下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