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()); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?