@Configuration
public class LocalDateTimeConvertConfig {
@Bean
public ObjectMapper objectMapper() {
JavaTimeModule javaTimeModule = new JavaTimeModule();
// 日期序列化格式(LocalDateTime转String)
javaTimeModule.addSerializer(LocalDateTime.class,
new LocalDateTimeSerializer(CommonConstants.STANDARD_DATE_TIME_FORMATTER));
// 日期反序列化格式(String转LocalDateTime),这里需要注意,格式必须为yyyy-MM-dd HH:mm:ss
javaTimeModule.addDeserializer(LocalDateTime.class,
new LocalDateTimeDeserializer(CommonConstants.STANDARD_DATE_TIME_FORMATTER));
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json()
.modules(javaTimeModule)
.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
.build();
//Date的 序列化与反序列化
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.setDateFormat(new SimpleDateFormat(CommonConstants.ALL_TIME_STR));
// 下划线
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
return objectMapper;
}
@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(ObjectMapper objectMapper) {
return new MappingJackson2HttpMessageConverter(objectMapper);
}
}