Я никогда не мог заставить это работать просто, используя аннотации. Чтобы заставить это работать, я создал ContextResolver for ObjectMapper , затем добавил JSR310Module (обновление: теперь это JavaTimeModule вместо), а также еще одно предостережение, заключавшееся в необходимости установить значение write-date-as-timestamp равным false . Смотрите больше в документации к модулю JSR310. Вот пример того, что я использовал.
Примечание: Одна проблема, с которой я столкнулся, заключается в том, что в jackson-annotation версии, подключенной к другой зависимости, использовалась версия 2.3.2, которая отменяла версию 2.4, требуемую jsr310. Случилось так, что я получил NoClassDefFound для ObjectIdResolver, который представляет собой класс 2.4. Итак, мне просто нужно было выстроить включенные версии зависимостей
publicObjectMapperContextResolver() { MAPPER = newObjectMapper(); // Now you should use JavaTimeModule instead MAPPER.registerModule(newJSR310Module()); MAPPER.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); }
@Override public ObjectMapper getContext(Class<?> type) { return MAPPER; } }