Сериализатор LocalDateTime Spring Boot kotlin jackson

Я использую kotlin с весенней загрузкой. Когда я запрашиваю конечную точку, которая должна вернуть мне объект LocalDateTime, она возвращает мне массив вместо строки.

Пример:

"createdAt": [
            2020,
            12,
            16,
            23,
            26,
            10,
            932070000
        ]

Что я ожидаю:

"createdAt": "2020-12-16 23:26:10"

Я создал Jackson2ObjectMapperBuilderCustomizer, но похоже, что он вообще не работает

@Configuration
class JacksonObjectMapperConfiguration {

companion object {
    private const val dateFormat = "yyyy-MM-dd"
    private const val dateTimeFormat = "yyyy-MM-dd HH:mm:ss"
}

@Bean fun jackson2ObjectMapperBuilderCustomizer(): Jackson2ObjectMapperBuilderCustomizer {
    return Jackson2ObjectMapperBuilderCustomizer {
        builder -> builder.simpleDateFormat(dateFormat)
                   builder.serializers(LocalDateSerializer(DateTimeFormatter.ofPattern(dateFormat)))
                   builder.serializers(LocalDateTimeSerializer(DateTimeFormatter.ofPattern(dateTimeFormat)))
    }
}

@Bean
@Primary
fun objectMapper(): ObjectMapper =
        ObjectMapper()
                .registerModule(KotlinModule())

}

Моя build.gradle.kts зависимость от Джексона

implementation(group = "com.fasterxml.jackson.module", name = "jackson-module-kotlin", version = "2.11.3")

Я хочу создать глобальный сериализатор LocalDateTime и LocalDate для всех полей в моем приложении, есть идеи, как с этим справиться?

Вам также нужно будет зарегистрировать JavaTimeModule для objectMapper. Попробуйте этот мой ответ, хотя он и на Java, но похож.

Madhu Bhat 20.12.2020 16:10

@MadhuBhat извините, но это не помогло

Yar Sol 20.12.2020 19:21
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Интеграция Slack и Spring Boot: как отправлять сообщения из Java-приложений
Интеграция Slack и Spring Boot: как отправлять сообщения из Java-приложений
Как отправлять сообщения в slack с помощью spring boot легко и без зависимостей.
1
2
1 239
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема исправлена ​​после того, как я удалил @EnableWebMvc в одном из моих классов конфигурации.

Для меня это было удаление @EnableWebFlux в классе @Configuration, где я реализовывал WebFluxConfigurer и предоставлял сопоставления CORS. Спасибо за совет. Как и вы, я пробовал почти все для пользовательской сериализации json безрезультатно.

haventchecked 18.03.2021 04:30

Другие вопросы по теме