#json #spring-boot #unicode #jackson #resttemplate
#json #весенняя загрузка #юникод #джексон #resttemplate
Вопрос:
Этот вопрос задавался в Stackoverflow несколько раз. Но я не смог найти решение для моего конкретного сценария. Во всех этих случаях решение состоит в том, чтобы сохранить данные json в UTF-8; так что вызывающий получает действительный Json.
В моем случае с Spring boot и RestTemplate я получаю Json в качестве ответа на запрос API, который я отправляю на сторонний сервер. У меня нет никакого контроля, чтобы изменить эту сторону.
Итак, есть ли какой-либо способ, которым я могу что-то сделать из myside в качестве принимающей стороны, чтобы исправить следующую проблему.?
Исключение JsonParseException: недопустимый начальный байт UTF-8 0x91
Ниже показано, как я закодировал свой запрос.
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
----
----
HttpEntity<HashMap> request = new HttpEntity(dataMap, headers);
Спасибо ..!
Ответ №1:
Я решил проблему.
Сначала я должен был принять ответ в виде строки, а затем выполнить соответствующие манипуляции со строками в соответствии с форматом, который я хочу, чтобы данные были.
String responseJsonString = restTemplate.postForObject(url, request, String.class);
Надеюсь, это может кому-то помочь.