Как получить довольно форматированный вывод из RestTemplate? - PullRequest
0 голосов
/ 20 марта 2020

Ниже приведен мой ответ на один из вызовов сервера из моего приложения Spring Boot,

String result = restTemplate.exchange(url, HttpMethod.GET, entity, String.class).getBody();

Затем я возвращаюсь к клиенту, как,

return ResponseEntity.ok().body(result);

В почтальоне я вижу json напечатан со многими \" довольно симпатично отформатированными.

Нужно ли мне изменить в ответной стороне, чтобы увидеть довольно форматированный вывод в Postman?

Пример вывода Postman:

"{\"records\":[{\"pkg_name\":\"com.company.app\",\"start_time\":1580307656040,\"update_time\":12345,\"min\":0.0,\"create_time\":1580307714254,\"time_offset\":21600000,\"datauuid\":\"xyz\",\"max\":0.0,\"heart_beat_count\":1,\"end_time\":1580307656040,\"heart_rate\":91.0,\"deviceuuid\":\"abc\"}]}" ...

Ожидаемый результат: Довольно отформатированный без \"

Ответы [ 2 ]

1 голос
/ 20 марта 2020

Мне кажется, что String result = restTemplate.exchange(url, HttpMethod.GET, entity, String.class).getBody(); возвращает дважды закодированную строку json. чтобы выйти и получить нормальный json

 String unwrappedJSON = objectMapper.readValue(result, String.class);
 return ResponseEntity.ok().body(unwrappedJSON);

РЕДАКТИРОВАТЬ

, если результат нормальный json и не удвоился, чем вы можете попробовать:

JsonNode result = restTemplate.exchange(url, HttpMethod.GET, entity, JsonNode.class).getBody();

return ResponseEntity.ok().body(result);
0 голосов
/ 20 марта 2020

Лучший подход - создать бин и десериализовать эту строку в него. После этого у вас будет структурированный объект со всеми преимуществами. (Например, красивый метод toString)

...