我对Jackson ObjectMapper有一个奇怪的问题。
我正在尝试做什么(如果你愿意,请告诉我一个更好的方法)是解析REST调用的结果。结果是String
,我想用ObjectMapper
解析它以填充POJO。但是流量甚至没有进入try catch
部分。以下是我正在使用的controller
代码:
@RequestMapping(value = "/data", method= RequestMethod.GET)
public String getData(Model model){
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> res = restTemplate.exchange("http://api.aelf.org/v1/informations/2017-09-20/romain",
HttpMethod.GET,
UserAgent.setUserAgentInHttpHeader(), String.class);
try{
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(res.getBody());
JsonNode name = root.path("semaine");
model.addAttribute("name", name.asText());
}catch (Exception e){
e.printStackTrace();
}
return "myView";
}
调试时发生的事情是我看到所有变量,包括res
和JSON格式的REST调用内容但是try
中没有变量存在。因此,模型永远不会填充任何name
数据。
答案 0 :(得分:1)
当您进入try语句时,这些变量将在范围内。继续踏入尝试区域。
此外,在例外情况下设置断点可能会有所帮助。