package com.xly.config; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; /** * 全局 ObjectMapper 配置:支持 LocalDate 序列化/反序列化 */ @Configuration public class JacksonConfig { /** * 配置好的 ObjectMapper:注册 JavaTimeModule,支持 Java 8 时间类型 */ @Bean @Primary // 标记为默认实例,避免多 ObjectMapper 冲突 public ObjectMapper objectMapper() { ObjectMapper mapper = new ObjectMapper(); // 1. 核心:注册 JSR310 模块,处理 LocalDate/LocalDateTime mapper.registerModule(new JavaTimeModule()); // 2. 关闭时间戳序列化,LocalDate 以 "yyyy-MM-dd" 字符串形式存储 mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); // 3. 忽略未知字段(AI 返回多余字段时不报错) mapper.configure(com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); return mapper; } }