Wie wird ein MapString, Objekt in POJO deserialisiert?

8

Ich habe eine Map & lt; String, Object & gt; enthält eine deserialisierte Form von JSON. Ich möchte dies in die Felder eines POJO deserialisieren.

Ich kann dies mit Gson durchführen, indem ich die Map in eine JSON-Zeichenfolge serialisieren und dann die JSON-Zeichenfolge in das POJO deserialisieren, aber das ist ineffizient (siehe Beispiel unten). Wie kann ich dies ohne den mittleren Schritt durchführen?

Die Lösung sollte vorzugsweise entweder Gson oder Jackson verwenden, da sie bereits im Projekt verwendet werden.

Beispielcode:

%Vor%     
Sampo 22.08.2014, 12:57
quelle

4 Antworten

18

Mit Gson können Sie Ihre Map in ein JsonElement umwandeln, das Sie dann mit fromJson :

genau parsen können %Vor%

Dies ist ähnlich der toJson -Methode, die Sie bereits verwenden, außer dass Sie vermeiden, die JSON-String-Repräsentation zu schreiben und diese JSON-String dann in ein JsonElement zurück zu analysieren, bevor Sie es in Ihre Klasse konvertieren.

    
andersschuller 24.08.2014, 11:45
quelle
9

In Jackson können Sie convertValue Methode. Siehe folgendes Beispiel:

%Vor%     
Michał Ziober 22.08.2014 13:11
quelle
1

Sie können MyPojo direkt erstellen, indem Sie ihm die Karte geben. Etwas wie

%Vor%

Und einen entsprechenden Konstruktor deklarieren:

%Vor%     
user1191976 22.08.2014 13:11
quelle
1

Sie können die jackson-Bibliothek zum Umwandeln des Kartenobjekts verwenden, um POJO zu steuern.

%Vor%     
user1759579 28.09.2017 07:08
quelle

Tags und Links