Es gibt eine Objekt-Mapper-Funktion, um Karten nach Kartenschlüsseln zu sortieren, aber über Java-Sätze wird nichts gesagt. Wenn ich Objekte in einem java.util.Set in meinem POJO abspeichere, wird der Jackson ObjectMapper sie in irgendeiner Reihenfolge in das json-Array serialisieren?Jackson ObjectMapper: Wird java.util.Set in aufsteigender sortierter Reihenfolge nach jsons Array serialisiert?
Wenn nicht, denke ich darüber nach, einen benutzerdefinierten Serializer für das Set zu diesem Zweck zu schreiben - gibt es einen besseren Weg, den jemand vorschlagen kann?
Update:
Letztlich ist das Ziel, eine Reihe von einzigartigen ganzen Zahlen in eine Art von Behälter in einem „Anfrage“ pojo deserialisieren. Verarbeiten Sie dann die Anfrage und übergeben Sie dieses Eingabefeld (unverändert) in einem "Antwort" -Objekt an das entsprechende Ausgabefeld.
Ich möchte die Daten in den POJOs als java.util.Set speichern, nur um alle Benutzer glücklich zu machen (wenn Sie versuchen, es als Untertyp von Set zu speichern, dann können die Konsumenten der POJO-Schnittstelle das stören Sie können nicht nur ein Set bekommen, sondern müssen ein HashSet oder ein TreeSet erwarten.
Funktioniert das?
- JSON-Array [5,4,3,2,1] wird in Set deserialisiert ABER, verwende ich @JsonDeserialize (as = TreeSet.class) auf die Setter-Methode. Der Laufzeittyp des Objekts ist nun ein TreeSet (obwohl es im POJO als Set gespeichert ist).
- Das Set wird über den Server weitergegeben und endet schließlich in der Antwort POJO (Laufzeittyp ist immer noch TreeSet, obwohl der POJO-Feldtyp Set ist).
- ObjectMapper serialisiert ein TreeSet zu json array [1,2,3,4,5] (weil TreeSet natürlich sortiert ist).
Punkt 3 oben ist derjenige, über den ich mich wundere - wird ObjectMapper den Laufzeittyp des POJO-Feldes oder den deklarierten Typ verwenden?
Vielleicht kann Ihnen das helfen? https://stackoverflow.com/questions/19272830/order-of-json-objects-using-jacksons-objectmapper – user
Dank @user - dieser Artikel ist über die Reihenfolge der Eigenschaften Serialisierung. Meine Frage betrifft die Serialisierung von Content-Bestellungen. –