Миграция ObjectMapper в JsonMapperJAVA

Программисты JAVA общаются здесь
Anonymous
Миграция ObjectMapper в JsonMapper

Сообщение Anonymous »

В настоящее время я обновляю свое приложение до Jackson 3.x (и Spring Boot 4.0). У меня есть объект ObjectMapper в Jackson 2, который вручную настраивает JavaTimeModule с определенными шаблонами DateTimeFormatter и несколькими переключателями функций.
В Jackson 3 я заметил, что ObjectMapper теперь является неизменяемым и следует шаблону компоновщика, а имена пакетов изменились с com.fasterxml.jackson на Tools.jackson. Кроме того, JavaTimeModule (jsr310), похоже, интегрирован по умолчанию.

Код: Выделить всё

@Bean
public ObjectMapper objectMapper() {
JavaTimeModule module = new JavaTimeModule();
ObjectMapper mapper = new ObjectMapper();

module.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ISO_DATE_TIME));
module.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ISO_DATE_TIME));
module.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ISO_DATE));
module.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ISO_DATE));

mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.configure(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN, true);
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
mapper.registerModule(module);

mapper.setSerializationInclusion(Include.NON_NULL);
return mapper;
}
Как мне воссоздать эту конкретную конфигурацию (особенно пользовательский DateTimeFormatter для LocalDateTime и LocalDate) с помощью нового API Jackson 3 Builder? Могу ли я по-прежнему добавлять собственные сериализаторы/десериализаторы во «встроенную» поддержку времени или мне все равно следует зарегистрировать модуль?

Вернуться в «JAVA»