RestSharp десериализации JSON объекта
я запускаю этот запрос RestSharp в формате JSON:
var response = restClient.Execute<Report>(request);
ответ, который я получаю, содержит эти данные
[
    {
        "Columns":
        [
            {"Name":"CameraGuid","Type":"Guid"},
            {"Name":"ArchiveSourceGuid","Type":"Guid"},
            {"Name":"StartTime","Type":"DateTime"},
            {"Name":"EndTime","Type":"DateTime"},
            {"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; }
}
к сожалению, данные результата равны нулю, и я получаю это исключение:
невозможно привести объект типа " RestSharp.JsonArray в тип - Система.Коллекции.Родовой.IDictionary ' 2 [Система.Строка, Система.Объект.']
Я не могу выясните, что здесь не так. Я бы очень признателен за небольшую помощь.
1 ответов
попробуйте это:
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.