W usługach JAX-RS 2.1 wewnętrzna biblioteka używana do przekształcania do i z postaci szeregowej między obiektami JSON i Java została zmieniona z Jackson na Yasson. Yasson jest implementacją odwołania JSON-B. Biblioteki Jackson i Yasson przekształcą obiekty związane z czasem na różne sposoby, na przykład:
| Jackson | Yasson | |
|---|---|---|
| java.util.Date | 726213720000 | 1993-02-05T06:02:00Z[UTC] |
| java.util.Calendar | 726213720000 | 1993-02-05T00:00:00-06:00[Ameryka/Chicago] |
Może dotyczyć dowolnych metod zasobów JAX-RS, które generują i pobierają dane
typu JSON. Ta reguła oznacza flagą wszystkie pola java.util.Date
lub java.util.Calendar zawarte w obiekcie generowanym lub
pobieranym przez metodę zasobu JAX-RS.
Poniżej znajduje się przykład metod zasobów JAX-RS, które generują i pobierają
obiekt Java zawierający pole java.util.Date i
java.util.Calendar:
Ta reguła oznacza java.util.Date i java.util.Calendar w polu DataObject obiektu.
W przypadku tej reguły zapewniona zostanie automatyczna poprawka w celu dodania adnotacji @JsonbDateFormat(value = JsonbDateFormat.TIME_IN_MILLIS ) do tych pól, aby przekonwertować dane wyjściowe na epokę milliseconds.After automatyczna poprawka zostanie zastosowana, klasa DataObject zostanie zaktualizowana w następujący sposób:
Uwaga: Aby uzyskać dostęp do @javax.json.bind.annotation.JsonbDateFormat zostanie dodana przez automatyczną poprawkę, automatyczna poprawka doda funkcję jsonb do pliku konfiguracyjnego Liberty server.xml pliku konfiguracyjnego. Należy na przykład dodać składnik
jsonb-1.0 w przypadku korzystania ze składnika
jaxrs-2.1.
Aby uzyskać więcej szczegółów na temat różnic w zachowaniu między specyfikacjami Jackson a Yasson, należy zapoznać się z informacjami na stronie Czy już czas na standard powiązań JSON? Artykuł porównujący zachowanie Jackson i JSON-B.