RestSharp: невозможно десериализовать массив - PullRequest
0 голосов
/ 05 марта 2019

Я использую RestSharp.У меня есть следующий код:

public void MyMethod()
{
       var client = new RestClient("https://test_site/api");
       var request = new RestRequest("/endpoint", Method.GET);

       var response = client.Execute<List<MyMapClass>>(request);
}

Моя проблема заключается в том, что во всех примерах, которые я видел, JSON находится в форме "свойство": "значение".

Однако в моем случае у меня просто есть массив строк:

[
  "Str1",
  "Str2",
  "Str3"
]

Так что я знаю, как десериализовать объект, когда JSON находится в форме "свойство": "значение", но мой вопрос: как я могу десериализовать массив строк?

1 Ответ

0 голосов
/ 05 марта 2019

Обратите внимание на квадратную скобку, а не на фигурную скобку.Фигурные скобки представляют объект, квадратные скобки представляют массив.

var response = client.Execute<List<string>>(request);

Или

var response = client.Execute<string[]>(request);

Вы также можете иметь массив в объекте (см. Цвета)

{
    "name": "iPhone 7 Plus",
    "manufacturer": "Apple",
    "deviceType": "smartphone_tablet",
    "searchKey": "apple_iphone_7_plus",
    "colors": ["red", "blue"]
}

, и соответствующая модель будет выглядеть следующим образом:

public class MyMapClass 
{
    public string Name { get; set; }
    public string Manufacturer { get; set; }
    public string DeviceType { get; set; }
    public string SearchKey { get; set; }
    public List<string> Colors { get; set; }
}
...