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:
Reguła spowoduje oznaczenie flagą pól java.util.Date oraz
java.util.Calendar w obiekcie DataObject. W skanerze kodu źródłowego dostępna jest szybka poprawka dla tej reguły. Szybka poprawka dodaje do
pól adnotację @JsonbDateFormat(value =
JsonbDateFormat.TIME_IN_MILLIS), która przekształca dane wyjściowe w
milisekundy epoki. Po uruchomieniu szybkiej poprawki klasa DataObject zostanie
zmieniona na:
Uwaga: aby uzyskać dostęp do adnotacji
@javax.json.bind.annotation.JsonbDateFormat dodanej przez szybką
poprawkę, należy dodać składnik jsonb do pliku konfiguracyjnego
server.xml produktu Liberty. 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.