springboot jackson配置LocalDate解析方式
Published on 2023-03-17 14:52 in 暂未分类 with INEEDSSD

springboot jackson配置LocalDate解析方式

    SpringBoot默认使用的是Jackson来完成JSON到对象的相互转换。
    对于一些Jackson不支持的数据类型,需要我们来指定转换规则,例如如何实现LocalDate与String的相互转换。

    @Configuration
    public class JacksonConfig {
    // LocalDatetime类型格式化规则
    @Value("${cpw.system.date.datetime-format-pattern:yyyy-MM-dd HH:mm:ss}")
    private String dateTimeFormatPattern;
    // LocalDate类型格式化规则
    @Value("${cpw.system.date.date-format-pattern:yyyy-MM-dd}")
    private String dateFormatPattern;
    /**
    * LocalDateTime序列化器
    */
    public LocalDateTimeSerializer localDateTimeSerializer() {
    return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(dateTimeFormatPattern));
    }
    /**
    * LocalDateTime反序列化器
    */
    public LocalDateTimeDeserializer localDateTimeDeserializer() {
    return new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(dateTimeFormatPattern));
    }
    public LocalDateSerializer localDateSerializer() {
    return new LocalDateSerializer(DateTimeFormatter.ofPattern(dateFormatPattern));
    }
    public LocalDateDeserializer localDateDeserializer() {
    return new LocalDateDeserializer(DateTimeFormatter.ofPattern(dateFormatPattern));
    }
    /**
    * 返回值类型格式化
    * 配置序列化器与反序列化器
    * 序列化器 --> 用户将对象转为字符串
    * 反序列化器 --> 用于将字符串转为对象
    */
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer customizer() {
    return builder -> builder
    .serializerByType(LocalDate.class, localDateSerializer())
    .serializerByType(LocalDateTime.class, localDateTimeSerializer())
    .deserializerByType(LocalDateTime.class, localDateTimeDeserializer())
    .deserializerByType(LocalDate.class, localDateDeserializer());
    }
    }
    posted @   INEEDSSD  阅读(421)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
    · Manus的开源复刻OpenManus初探
    · AI 智能体引爆开源社区「GitHub 热点速览」
    · 三行代码完成国际化适配,妙~啊~
    · .NET Core 中如何实现缓存的预热?
    点击右上角即可分享
    微信分享提示