#c# #json #serialization
Вопрос:
private List<payload> items()
{
var client = new RestClient("URL Site");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Accept-Charset", "utf-8");
var body = @"{
some parameters.....
}";
request.AddParameter("application/json", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.MetadataPropertyHandling = MetadataPropertyHandling.Ignore;
settings.Culture = new System.Globalization.CultureInfo("el-GR");
var ksite = Newtonsoft.Json.JsonConvert.DeserializeObject(response.Content, settings);
JObject ob = JObject.Parse(ksite.ToString());
JToken dataArray = ob["rows"];
List<payload> item = JsonConvert.DeserializeObject<List<payload>>(dataArray.ToString());
return item;
}
Моя проблема в том, что список, который я получаю от конечной точки, показывает недопустимые символы вместо греческого. введите описание изображения здесь
Комментарии:
1. Как выглядит необработанный ответ JSON?
response.Content
себя до десериализации.2. Ну, в исходном содержимом есть греческие иероглифы. Когда я использую его в «почтальоне», все кажется в порядке. Но как только я получу ответ. Контент вместо греческих иероглифов я получаю вот это.
3. У вас есть второй вызов десериализации
List<payload> item = JsonConvert.DeserializeObject<List<payload>>(dataArray.ToString());
, который не учитывает вашу информацию о культуре, вам также нужно будет передать настройки во второй вызов. Вам также не нужно будет выполнять десериализацию дважды, если вы десериализуетесь в заранее определенный объект.