2017-09-04 6 views
1

私はJackson ObjectMapperに奇妙な問題があります。ジャックObjectMapperがtry catchで到達不能

RESTコールの結果を解析することを試みています(必要に応じてより良いアプローチを教えてください)。その結果はStringで、私はObjectMapperと解析してPOJOを設定したいと考えています。しかし、流れはtry catchセクションにも入りません。

@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呼び出しの内容BUTでvarialblesのどれも含めたすべての変数を、見ることでデバッグするときに何が起こっている:以下は、私が使用しているcontrollerコードがありますtryが存在します。したがって、モデルには決してnameデータが入力されることはありません。

+1

tryステートメントに入ると、それらの変数はスコープに含まれます。例外にブレークポイントを設定し、これにステップインして、res.getBody()があなたが時計に期待したいことを与えていることを確認します。マッパーコンストラクタをtryから移動させると、cstrは失敗しません。 – Tim

+0

@Tim Yes Tim。私は 'try 'に休憩を入れ、' try'で止まった 'catch 'に...' root'は私が望むものを持っています。私は 'name'のデータに到達できませんでした。' root'のJSON構造体は{{"info":{"semaine": "data1"、 "other_field": "other_data"}}です。それを見るつもりです... – Bloomberg58

+0

@Tim。問題が解決しました... 'tryステートメントに入ると、それらの変数は範囲内になります。例外にブレークポイントを入れて、これを実行するとあなたは私を助けました...ありがとう – Bloomberg58

答えて

1

tryステートメントに入ると、それらの変数はスコープに入ります。試しにステップを進めてください。

また、例外が発生した場合に例外にブレークポイントを設定すると便利です。

+0

私の質問;-) – Bloomberg58

関連する問題