c# – RestSharp JSON数组反序列化

我以 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
‘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.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...