Jackson ObjectMapper在try catch中无法访问

时间:2017-09-04 17:23:43

标签: java jackson

我对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数据。

1 个答案:

答案 0 :(得分:1)

当您进入try语句时,这些变量将在范围内。继续踏入尝试区域。

此外,在例外情况下设置断点可能会有所帮助。