Ich habe ein seltsames Problem mit Jackson ObjectMapper.Jackson ObjectMapper unerreichbar in Versuch fangen
Was ich versuche (bitte geben Sie mir einen besseren Ansatz, wenn Sie wollen) ist das Ergebnis eines REST-Aufrufs analysieren. Dieses Ergebnis ist ein String
und ich möchte es mit ObjectMapper
analysieren, um ein POJO zu füllen. Aber der Fluss tritt nicht einmal in den Bereich try catch
. Unten ist der controller
Code Ich verwende:
@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";
}
Was geschieht, wenn ich debuggen ist, dass ich alle Variablen zu sehen, einschließlich res
und den Inhalt des REST Aufruf im JSON-Format, aber keiner der varialbles in der try
ist vorhanden. Folglich wird das Modell nie mit Daten name
bestückt.
Wenn Sie in die try-Anweisung eintreten, werden diese vars im Bereich sein. Setzen Sie einen Breakpoint in die Exception und stellen Sie sicher, dass res.getBody() Ihnen die gewünschte Uhrzeit in der Watch anzeigt. und der Mapper-Konstruktor kann aus dem Versuch entfernt werden, der cstr wird nicht fehlschlagen – Tim
@Tim Ja Tim. Ich habe eine Pause in "try" gemacht und in "catch" hat es in "try" aufgehört ... "root" hat bekommen was ich will. Ich glaube, ich habe nur die Daten für 'name' nicht erreicht. Die JSON-Struktur von' root' ist '{" info ": {" semaine ":" data1 "," other_field ":" other_data "}} ... I werde es mir ansehen ... – Bloomberg58
@Tim. Problem gelöst ... 'Wenn Sie in die try-Anweisung einsteigen, werden diese Variablen im Umfang sein. Setzen Sie einen Unterbrechungspunkt in die Ausnahme und treten Sie in dieses ein "Sie haben mir geholfen ... Danke – Bloomberg58