Deserialisieren Sie JSON, das (_links und _embedded) enthält, mithilfe von Spring-hateas

9

Ich versuche, sehr einfache json webservices aufzurufen, die Daten dieses Formulars zurückgeben:

%Vor%

Wie Sie sehen können, ist es ziemlich geradlinig. Ich habe keine Probleme, die Verbindungen zu analysieren, meine POJOs, die von ResourceSupport verlängern. So sehen sie aus:

UsersJson (das Stammelement)

%Vor%

UserJson

%Vor%

Die Sache ist, dass ich erwartet habe, dass jackson und spring schlau genug sind, die _embedded-Eigenschaft zu parsen und mein UsersJson.users-Attribut zu füllen, aber das ist es nicht.

Ich habe verschiedene Dinge ausprobiert, die ich im Internet gefunden habe, aber das einzige, was ich richtig machen konnte, war eine neue Klasse zu erstellen, die als _embedded Wrapper funktioniert:

UsersJson (das Stammelement)

%Vor%

Eingebetteter "Wrapper"

%Vor%

Es funktioniert, aber ich finde es ziemlich hässlich.

Aber ich hätte die folgende Konfiguration des RestTemplate funktioniert (besonders wenn ich EmbeddedMapper in Jackson2HalModule gesehen habe), aber es hat nicht funktioniert:

%Vor%

Kann mir jemand sagen, was ich vermisse?

    
Heyjojo 14.06.2016, 13:41
quelle

2 Antworten

3

Schließlich habe ich einen besseren Weg gefunden, diese application / hal + json APIs zu konsumieren.

Spring hateoas bietet tatsächlich einen fast gebrauchsfertigen Client: org.springframework.hateoas.client.Traverson.

%Vor%

Wie Sie sehen können, habe ich UsersJson und UsersEmbeddedListJson losgeworden.

Hier sind die Maven-Abhängigkeiten, die ich hinzugefügt habe

%Vor%     
Heyjojo 01.07.2016, 14:16
quelle
0

Ich musste das zu meinem DTO hinzufügen:

%Vor%

seit ResourceSupport keinen POJO-Standard / Json-signalisierten Setter / Konstruktor für Links

hat     
Whimusical 02.11.2017 16:52
quelle