#c# #deserialization #restsharp
#c# #десериализация #restsharp
Вопрос:
Я использую 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 имеет форму «property»:»value», но мой вопрос таков: как я могу десериализовать массив строк?
Комментарии:
1. Просто десериализуйте его в какую-то коллекцию строк (например, string array)?
2. Как
[ "Str1", "Str2", "Str3" ]
относится кMyMapClass
?
Ответ №1:
Обратите внимание на квадратную скобку, а не на фигурную. Фигурные скобки представляют объект, квадратные скобки представляют массив.
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; }
}
Комментарии:
1. Как это связано с тем, что запрашивает OP?
2. Похоже, что OP запутался в различиях между массивом в JSON и объектом. Это была попытка прояснить разницу. Не стесняйтесь добавлять лучший ответ.
3. Я не мог предложить ответ, потому что, как я это вижу, они спрашивают, как десериализовать
[ "Str1", "Str2", "Str3" ]
вMyMapClass
. Для меня это просто не имеет смысла.4. @Enigmativity то, как я это прочитал (и я думаю, как это прочитал Шейн), заключалось в том, что OP знает, как десериализовать объект ( «во всех примерах, которые я видел, JSON имеет форму «property»:»value»» ), но не знает, как построить модель для десериализации массива строк ( «Однако в моем случае у меня просто есть массив значений переменного размера:» ).
5. @John — Да, я тоже так это прочитал. Их конкретный вопрос был «Итак, в этом случае, как должен быть определен
MyMapClass
класс?» вот почему я думаю, что мы должны знать, как[ "Str1", "Str2", "Str3" ]
сопоставляется сMyMapClass
, чтобы иметь возможность предоставить ответ.