Konfigurieren von Jackson Deserializer für verschachtelte Entitäten mit Spring Boot

8

Betrachten Sie die folgenden Entitäten:

%Vor%

und

%Vor%

Ich versuche, einen JSON an einen RestController zu senden

%Vor%

Ich verwende Standardkonfigurationen von Spring Boot zum Serialisieren und Deserialisieren von Objekten.

Wenn ich ein JSON wie folgt posten, funktioniert es gut:

%Vor%

Aber ich muss einen JSON wie folgt posten:

%Vor%

Wenn ich das tue, erhalte ich den Fehler

%Vor%

Beim Debugging habe ich festgestellt, dass Jackson versucht, einen URI von der "regiao" -Eigenschaft des geposteten Objekts zu erstellen, indem er auf eine String-Vorlage wie "/ {id}" wartet. Ich google es, kann aber keine richtige Antwort dafür finden.

Ich habe einige Probleme in StackOverflow gesehen, aber keine funktionierte für mich.

Können Sie sagen, was ist das Problem?

Ich denke, das ist nur eine Konfiguration, aber weiß nicht wie oder wo.

Ich versuche auch, benutzerdefinierte Serialisierer und Deserialisierer zu vermeiden.

BEARBEITEN:

Wenn ich einen JSON mit nur den IDs der verschachtelten Entitäten POST:

%Vor%

Ich bekomme diese Nachricht:

%Vor%

Da ich sehe, dass die korrekte Art, die verschachtelte Entity zu senden, wie "regiao" ist: "/ 10", kodiere ich dies in meinem Javascript als Workaround:

%Vor%

Es funktioniert, aber es ist scheiße. Wie kann ich das in Javascript beheben oder Jackson konfigurieren?

Einige Dokumente lesen, es gibt etwas mit UriToEntityConverter zu tun, aber immer noch nicht die richtige Art, dies zu konfigurieren.

Danke.

    
Jonathan Oliveira 02.04.2015, 16:51
quelle

2 Antworten

3

Ich habe es mit @RestResource (export = false) Annotation in den EstadoRepository und RegiaoRepository Klassen gelöst.

Es "versteckt" de Repo vom Frühling, wenn es die Endpunkte und Sachen ... automatisch konfiguriert,

    
Jonathan Oliveira 28.05.2015, 17:33
quelle
0

Sie können die Annotation @JsonIgnoreProperties (ignoreUnknown = true) für Ihre Entitätsklasse wie folgt verwenden.

%Vor%

Es kann Ihr Problem lösen. Es ignoriert unbekannte fehlende Felder in JSON-Objekt. Es wird nur verfügbare Felder in JSON-Objekten verwenden und unbekannte Felder ignorieren.

    
sohan nohemy 21.04.2015 04:57
quelle