În JAX-RS 2.1, biblioteca internă folosită pentru serializare şi deserializare între obiecte JSON şi Java a fost schimbată de la Jackson la Yasson. Yasson este implementarea de referinţă pentru JSON-B. Jackson şi Yasson vor serializa obiectele legate de timp în moduri diferite, de exemplu:
| 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] |
Toate metodele resursei JAX-RS care produc sau folosesc date de tip JSON pot fi afectate. Această regulă semnalează toate câmpurile java.util.Date sau java.util.Calendar care sunt conţinute într-un obiect produs sau folosit de o metodă de
resursă JAX-RS.
Următorul este un exemplu de metodă de resursă JAX-RS care produce şi foloseşte un Java Object care conţine un câmp java.util.Date şi java.util.Calendar:
Această regulă marchează java.util.Date și java.util.Calendar în obiectul DataObject obiect.
Pentru această regulă, se va furniza o corecție automată pentru a adăuga adnotarea @JsonbDateFormat(value = JsonbDateFormat.TIME_IN_MILLIS ) la aceste câmpuri pentru a converti rezultatul în epocă milliseconds.After corecția automată este aplicată, clasa DataObject va fi actualizată după cum urmează:
Notă: Pentru a accesa @javax.json.bind.annotation.JsonbDateFormat adnotarea va fi adăugată de soluția automată, Soluția automată va adăuga caracteristica jsonb la Liberty server.xml fișier de configurare. De exemplu, adăugaţi caracteristica jsonb-1.0 dacă folosiţi
caracteristica jaxrs-2.1.
Pentru mai multe detalii despre diferenţele de comportament dintre Jackson şi Yasson, vedeţi articolul Is it time for a JSON binding standard? care compară comportamentul Jackson şi JSON-B.