我想以易于理解的格式在浏览器中打印来自RESTful请求的json响应,同时保持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";
}
在templates / print_response.html
中<body>
[[${response}]]
</body>
不需要进一步处理响应,它将仅用于浏览器中的可视化。在控制器或模板中进行格式化是否更好?以及如何?
谢谢!
答案 0 :(得分:0)
您可以尝试将响应字符串转换为json对象,然后再转换为缩进字符串:
ObjectMapper objectMapper = new ObjectMapper();
Object json = objectMapper.readValue(response, Object.class);
String indented = objectMapper.writerWithDefaultPrettyPrinter()
.writeValueAsString(json);