список c# с содержимым json показывает недопустимые греческие символы

#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()); , который не учитывает вашу информацию о культуре, вам также нужно будет передать настройки во второй вызов. Вам также не нужно будет выполнять десериализацию дважды, если вы десериализуетесь в заранее определенный объект.