Mehrere Ebenen von Jackson WRAPPER_OBJECTs verschachteln

8

Auf keinen Fall bin ich ein Jackon / JSON-Assistent, was wahrscheinlich aus dem folgenden Problem ersichtlich ist:

Ich habe zwei mögliche Datenstrukturen, die ich erhalte. Die erste heißt MengeTransaktion:

%Vor%

Dies wird durch das folgende Java-Objekt dargestellt:

%Vor%

Das Objekt menuTransaction wird jedoch auch als untergeordnetes Element des Objekts paymentTransactionNotification angezeigt:

%Vor%

.. was ich dachte, würde vertreten durch:

%Vor%

Die Analyse des JSON mit dem Objekt mengeTransaction funktioniert einwandfrei. Es ist ein ziemlich einfaches Beispiel für ein WRAPPER_OBJECT.

Beim Versuch, den JSON für die paymentTransactionNotification zu analysieren, erhalte ich jedoch eine Ausnahme, die darauf hinweist, dass die Transaktion menuTransaction nicht ordnungsgemäß als Element der Funktion paymentTransactionNotification behandelt werden kann:

%Vor%

Irgendwelche Gedanken darüber, wie ich das richtig kommentieren kann, damit mein Code sowohl eigenständige als auch gekapselte Mengentransaktionsobjekte richtig behandeln kann?

    
uncrase 20.11.2014, 10:58
quelle

1 Antwort

5

Standardmäßig ist das Umbrechen des Stammknotens in Jackson deaktiviert. Sie können innere Objekte umschließen, aber wenn Sie den Wurzelknoten umbrechen möchten, müssen Sie die jackson Funktion dafür aktivieren ( Ссылка ) :

%Vor%

Wenn Sie diese Funktionen aktiviert haben, sagten Sie bereits, dass Jackson das Wurzelelement umbrechen soll und Sie @ JsonTypeInfo und @JsonTypeName nicht mehr benötigen. Sie können sie einfach löschen. Aber jetzt müssen Sie den Namen des Root-Knotens anpassen und Sie können @ JsonRootName dafür verwenden. Ihre Klassen sollten wie folgt aussehen:

%Vor%

Und

%Vor%

Ich habe versucht und Jackson beide JSON-Anfragen wie erwartet konvertiert.

    
Ilya Ovesnov 27.11.2014, 07:14
quelle

Tags und Links