springboot jackson配置LocalDate解析方式()-spring
springboot jackson配置LocalDate解析方式()
默认使用的是来完成JSON到对象的相互转换。
对于一些Jackson不支持的数据类型,需要我们来指定转换规则,例如如何实现LocalDate与String的相互转换。
SpringBoot
Jackson
@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());
}
}
————————
默认使用的是来完成JSON到对象的相互转换。
对于一些Jackson不支持的数据类型,需要我们来指定转换规则,例如如何实现LocalDate与String的相互转换。
SpringBoot
Jackson
@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());
}
}