我以
JSON格式启动这个RestSharp查询:
var response = restClient.Execute<Report>(request);
我得到的响应包含这些数据
[ { "Columns": [ {"Name":"CameraGuid","Type":"Guid"},{"Name":"ArchiveSourceGuid",{"Name":"StartTime","Type":"DateTime"},{"Name":"EndTime",{"Name":"TimeZone","Type":"String"},{"Name":"Capabilities","Type":"UInt32"} ],"Rows": [ [ "00000001-0000-babe-0000-00408c71be50","3782fe37-6748-4d36-b258-49ed6a79cd6d","2013-11-27T17:52:00Z","2013-11-27T18:20:55.063Z","Eastern Standard Time",2147483647 ] ] } ]
我试图将它反序列化成这组课程:
public class Report { public List<ReportResult> Results { get; set; } } public class ReportResult { public List<ColumnField> Columns { get; set; } public List<RowResult> Rows { get; set; } } public class ColumnField { public string Name { get; set; } public string Type { get; set; } } public class RowResult { public List<string> Elements { get; set; } }
不幸的是,结果数据为空,我得到这个例外:
Unable to cast object of type ‘RestSharp.JsonArray’ to type
@H_502_18@
‘System.Collections.Generic.IDictionary`2[System.String,System.Object]’.我不知道这里有什么问题.
我很少的帮助将不胜感激.
解决方法
尝试这个:
var response = restClient.Execute<List<ReportResult>>(request);
编辑
您还应该将ReportResult更改为:
public class ReportResult { public List<ColumnField> Columns { get; set; } public List<List<string>> Rows { get; set; } }
你可以摆脱Report和RowResult.