In JAX-RS 2.1, la libreria interna utilizzata per la serializzazione e la deserializzazione tra gli oggetti JSON e Java è stata modificata da Jackson a Yasson. Yasson è l'implementazione di riferimento di JSON-B. Jackson e Yasson serializzeranno gli oggetti correlati al tempo in diversi modi, ad esempio:
| 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] |
Qualsiasi metodo della risorsa JAX-RS che produce o utilizza dati di tipo JSON potrebbe essere interessato. Questa regola contrassegna qualsiasi campo java.util.Date o java.util.Calendar contenuto in un oggetto prodotto o utilizzato da un metodo della risorsa JAX-RS.
Di seguito viene riportato un esempio di metodo della risorsa JAX-RS che produce ed utilizza un oggetto Java contenente un campo java.util.Date e java.util.Calendar:
Questa regola segnala gli elementi java.util.Date e java.util.Calendar nell'oggetto DataObject dell'oggetto.
Per questa regola, verrà fornita una correzione automatica per aggiungere l'annotazione @JsonbDateFormat(value = JsonbDateFormat.TIME_IN_MILLIS ) a questi campi per convertire l'output in epoca milliseconds.After La correzione automatizzata viene applicata la classe DataObject sarà aggiornata come segue:
Nota: per accedere alla schermata @javax.json.bind.annotation.JsonbDateFormat sarà aggiunto dalla correzione automatica, La correzione automatica aggiungerà la funzione jsonb al proprio file di configurazione Liberty server.xml al file di configurazione. Ad esempio, aggiungere la funzione jsonb-1.0 se si sta utilizzando la funzione jaxrs-2.1.
Per ulteriori dettagli sulle differenze di comportamento tra Jackson e Yasson, consultare l'articolo Is it time for a JSON binding standard? che confronta il comportamento di Jackson e JSON-B.