c# – RestSharp JSON数组反序列化

前端之家收集整理的这篇文章主要介绍了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.

猜你在找的C#相关文章