Restsharp Проблемы десериализации - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь десериализовать JSON, который последовательно содержит серию «Клиентов» из вызова API:

{"resource":[{"ClientID":1,"ClientName":"Name 1","ClientIntID":"TEST001","ClientCreatedDate":"2018-05-10 00:00:00"},{"ClientID":2,"ClientName":"Name 2","ClientIntID":"TEST002","ClientCreatedDate":"2018-05-10 03:10:47"},{"ClientID":3,"ClientName":"TestAPI","ClientIntID":"API001","ClientCreatedDate":"2018-05-10 03:30:14"},{"ClientID":4,"ClientName":"Postman","ClientIntID":"00POST","ClientCreatedDate":"2018-05-10 05:03:40"},{"ClientID":5,"ClientName":"Postman","ClientIntID":"00POST","ClientCreatedDate":"2018-05-10 05:04:28"},{"ClientID":6,"ClientName":"Postman","ClientIntID":"00POST","ClientCreatedDate":"2018-05-10 05:04:31"},{"ClientID":7,"ClientName":"Postman","ClientIntID":"00POST","ClientCreatedDate":"2018-05-10 05:10:32"},{"ClientID":8,"ClientName":"Postman","ClientIntID":"00POST","ClientCreatedDate":"2018-05-10 05:10:35"}]}

в список клиентов.

Это мой код для десериализации:

        IRestResponse<List<Client>> response = restClient.Execute<List<Client>>(request);
        var content = response.Content;
        var data = response.Data;

        //Trying to check output of each Client in List:
        foreach(Client c in data)
            {
                Console.WriteLine(c.ClientName);
            }

Это мой класс клиента:

    public class Client
{
    public int ClientID { get; set; }
    public string ClientName { get; set; }
    public string ClientIntID { get; set; }
    public string ClientCreatedDate { get; set; }

}

Я получаю список, который является нулевым, однако, когда я изменяю код, чтобы просто привести его только к одному Клиенту, он правильно сохраняет первого клиента в ответе JSON.

Какие-нибудь советы?

1 Ответ

0 голосов
/ 10 мая 2018

Ваш ответ в форме следующего формата, поэтому вы должны десериализовать в RootObject

public class Resource {
    public int ClientID { get; set; }
    public string ClientName { get; set; }
    public string ClientIntID { get; set; }
    public string ClientCreatedDate { get; set; }
}

public class RootObject{
    public List<Resource> resource { get; set; }
}
...