In JAX-RS 2.1 wurde die für die Serialisierung und Entserialisierung von JSON- und Java-Objekten verwendete interne Bibliothek von Jackson auf Yasson umgestellt. Yasson ist die Referenzimplementierung von JSON-B. Jackson und Yasson serialisieren zeitbezogene Objekte auf verschiedene Arten, z. B.:
| Jackson | Yasson | |
|---|---|---|
| java.util.Date | 726213720000 | 1993-02-05T06:02:00Z[UTC] |
| java.util.Calendar | 726213720000 | 1993-02-05T00:00:00-06:00[America/Chicago] |
Es können alle JAX-RS-Ressourcenmethoden, die JSON-Daten erzeugen oder verarbeiten, betroffen sein. Diese Regel markiert alle java.util.Date- und java.util.Calendar-Felder,
die in einem Objekt enthalten sind, das von einer JAX-RS-Ressourcenmethode erzeugt oder verwendet wird.
Im Folgenden sehen Sie ein Beispiel für JAX-RS-Ressourcenmethoden, die ein Java-Objekt erzeugen oder verwenden, das ein java.util.Date- oder java.util.Calendar-Feld enthält:
Diese Regel kennzeichnet die java.util.Date und java.util.Calendar felder in dem DataObject objekt.
Für diese Regel wird eine automatische Korrektur bereitgestellt, um die Anmerkung @JsonbDateFormat(value = JsonbDateFormat.TIME_IN_MILLIS ) zu diesen Feldern hinzuzufügen, um die Ausgabe in die Epoche milliseconds.After zu konvertieren. Nach Anwendung der automatischen Korrektur wird die Klasse DataObject wird wie folgt aktualisiert:
Hinweis: Für den Zugriff auf die @javax.json.bind.annotation.JsonbDateFormat anmerkung wird durch die automatische Korrektur hinzugefügt. Die automatische Korrektur fügt die jsonb-Funktion zu Ihrer Liberty server.xml konfigurationsdatei hinzu. Fügen Sie beispielsweise das Feature jsonb-1.0 hinzu, wenn Sie das Feature
jaxrs-2.1 verwenden.
Weitere Einzelheiten zu den Verhaltensunterschieden zwischen Jackson und Yasson finden Sie im Artikel Is it time for a JSON binding standard? zum Verhaltensvergleich von Jackson und JSON-B.