RestTemplate + Jackson

9

Ich möchte Spring's RestTemplate plus Jackson verwenden, um einen WebService zu verwenden. Ich habe mehrere Tutorials verfolgt und bin an den Punkt gekommen, die DAOs zu erstellen. Dies ist die Methode, bei der ich alle meine Domain-Objekte bekomme:

%Vor%

Aber mein Web-Service gibt nicht sofort ein Array von Stations-Objekten zurück, sondern einen eher semantischen Ausdruck auf diese Weise:

%Vor%

Also ist mein Problem, ich bin mir nicht sicher, wie ich "RestTemplate" sagen soll, die Objektliste direkt nach dem "Stationen" -Anzeiger zu analysieren, ohne ein Ad-hoc-Objekt zu erstellen, das nicht die richtige Lösung zu sein scheint. p>

Gibt es eine Möglichkeit, die richtige Syntax für RestTemplate anzugeben?

EDIT: Ich habe ein Wrapper-Objekt wie folgt erstellt:

%Vor%

Aber ich habe Schwierigkeiten damit, dieses Objekt generisch zu machen, da der Schlüsselname meiner Objektliste in der JSON-Antwort von der Klasse dieses Domänenobjekts abhängt.

    
MichelReap 20.08.2013, 06:38
quelle

1 Antwort

4

Hier gibt es zwei Lösungen:

  1. Sie können eine eigene Deserializer-Implementierung schreiben, in der Sie das JSON analysieren und nur die Stationsliste übernehmen und in das List-Objekt konvertieren. Der Deserializer kann auf dem RestTemplate festgelegt werden. Sehen Sie sich an, wie Sie einen benutzerdefinierten Desrializer für Jackson schreiben können
  2. Die andere Sache, die Sie tun können, ist, eine Klasse zu schreiben, die die Rest-Antwort abbildet. Diese Klasse sollte das List-Objekt als eine Mitgliedsvariable enthalten. Dann wird Spring standardmäßig in die neue Klasse konvertiert und Sie können die Stationen aus dieser Klasse abrufen.

Hier ist ein Beispiel.

Die Antwortklasse

%Vor%

Im Rest-Client

%Vor%     
Dhanush Gopinath 20.08.2013 06:48
quelle

Tags und Links