Prettyprinting Spring Boot JSON RESTful ответ в браузере с использованием тимилиста - PullRequest
0 голосов
/ 10 июня 2019

Я хотел бы напечатать ответ json на запрос RESTful в браузере в удобном для человека формате, сохраняя переносы и отступы json.

Мой текущий код сохраняет ответ json в виде String и печатает строку без какого-либо форматирования.

В RESTFulController.java

@Controller
public class RESTFulControllerController {

    @RequestMapping("myrequest")
    public String myRequest(Model model) {

        //--> Initializations
        RestTemplate rest_template= new RestTemplate();
        String url = "https://example.com/api";

        //--> Create http request
        HttpHeaders headers = new HttpHeaders();
        MultiValueMap<String, String> body_map = new LinkedMultiValueMap<>();
        body_map.add("resource_id", "value_of_resource_id");
        HttpEntity<MultiValueMap<String, String>> request_entity = new HttpEntity<>(body_map, headers);

        //--> Post http request 
        String response = rest_template.postForObject(url, request_entity, String.class);

        //--> Add data for display
        model.addAttribute("response", response);

        return "print_response";

}

В шаблонах / print_response.html

<body>
    [[${response}]] 
</body>

Нет необходимости в дальнейшей обработке ответа, он будет использоваться только для его визуализации в браузере. Лучше сделать форматирование в контроллере или в шаблоне? и как?

Заранее спасибо!

1 Ответ

0 голосов
/ 10 июня 2019

Вы можете попытаться преобразовать строку ответа в объект json, а затем обратно в строку с отступом:

ObjectMapper objectMapper = new ObjectMapper();
Object json = objectMapper.readValue(response, Object.class);
String indented = objectMapper.writerWithDefaultPrettyPrinter()
                               .writeValueAsString(json);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...