JacksonConfig.java
1.24 KB
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;
}
}