springboot通过javaconfig配置jackson

时间:2022-07-27
本文章向大家介绍springboot通过javaconfig配置jackson,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
@Configuration
public class JacksonConfig {
	// 配置特性属性值
    @Bean
    JacksonProperties jacksonProperties() {
        JacksonProperties properties = new JacksonProperties();
        properties.setDateFormat(DateHandler.DATETIME_PATTERN);
        properties.setJodaDateTimeFormat(DateHandler.DATETIME_PATTERN);
        properties.setTimeZone(TimeZone.getTimeZone(DateHandler.ZONEID));
        properties.getSerialization().put(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
        return properties;
    }
	// 自定义特定类型的序列化反序列化器
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return builder -> {
            builder.serializerByType(LocalDate.class, new LocalDateSerializer(DateHandler.DATE_FORMAT));
            builder.deserializerByType(LocalDate.class, new LocalDateDeserializer(DateHandler.DATE_FORMAT));
            builder.serializerByType(LocalTime.class, new LocalTimeSerializer(DateHandler.TIME_FORMAT));
            builder.deserializerByType(LocalTime.class, new LocalTimeDeserializer(DateHandler.TIME_FORMAT));
            builder.serializerByType(LocalDateTime.class, new LocalDateTimeSerializer(DateHandler.DATETIME_FORMAT));
            builder.deserializerByType(LocalDateTime.class, new LocalDateTimeDeserializer(DateHandler.DATETIME_FORMAT));
        };
    }

}