В JAX-RS 2.1 для выполнения сериализации и десериализации между объектами JSON и Java вместо библиотеки Jackson стала применяться библиотека Yasson. Yasson является эталонной реализацией JSON-B. Jackson и Yasson по-разному выполняют сериализацию объектов времени, например:
| 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] |
Изменение касается всех методов ресурсов JAX-RS, которые предоставляют или используют данные типа JSON. Это правило отмечает все поля java.util.Date и
java.util.Calendar, содержащиеся в объекте, который предоставляется или
используется методом ресурса JAX-RS.
Ниже приведен пример методов ресурсов JAX-RS, которые предоставляют или
используют объект Java, содержащий поле java.util.Date или java.util.Calendar:
Это правило помечает java.util.Date и java.util.Calendar поля в DataObject объекте.
Для этого правила предусмотрено автоматическое исправление, добавляющее аннотацию @JsonbDateFormat(value = JsonbDateFormat.TIME_IN_MILLIS ) к этим полям, чтобы преобразовать вывод в эпоху milliseconds.After После применения автоматизированного исправления класс DataObject будет обновлен следующим образом:
Примечание: Чтобы получить доступ к @javax.json.bind.annotation.JsonbDateFormat аннотация будет добавлена автоматическим исправлением, Автоматическое исправление добавит функцию jsonb в ваш Liberty server.xml конфигурационный файл. Например, если используется jaxrs-2.1, то необходимо добавить компонент jsonb-1.0.
За дополнительной информацией об отличиях Jackson от Yasson обратитесь к статье Is it time for a JSON binding standard?, в которой сравниваются принципы работы Jackson и JSON-B.