spring boot项目中LocalDateTime的json序列化处理
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
1. 默认的Jackson
配置
spring boot
默认是采用Jackson
来做json
的序列化的。当我们使用LocalDateTime
来表示时间的时候,如果不做相应的配置,那么前端接收到的时间就会是一个数组,类似于这种:
"createTime": [2099, 12, 31, 23, 59, 59]
引发这个问题的原因是json
序列化的时候没有配置规则,所以采用了默认的序列化规则,返回了数组。所以解决的方法就是配置一个规则:
@Configuration
public class WebConfig {
@Bean
public Jackson2ObjectMapperBuilderCustomizer customizeLocalDateTimeFormat() {
return jacksonObjectMapperBuilder -> {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTimeDeserializer deserializer = new LocalDateTimeDeserializer(formatter);
LocalDateTimeSerializer serializer = new LocalDateTimeSerializer(formatter);
jacksonObjectMapperBuilder.serializerByType(LocalDateTime.class, serializer);
jacksonObjectMapperBuilder.deserializerByType(LocalDateTime.class, deserializer);
};
}
}
这样,所有的时间格式都会按照"yyyy-MM-dd HH:mm:ss"
来显示,如果需要特殊的格式,例如"yyyy年MM月dd日"
,那么只需要在字段上加上@JsonFormat(pattern = "yyyy年MM月dd日")
注解即可。
例如:
@JsonFormat(pattern = "yyyy年MM月dd日")
@ApiModelProperty(value = "申请日期 yyyy年MM月dd日")
private LocalDateTime applyDate;
2.使用了Fastjson
如果我们在项目中引入了其他的json
处理依赖,那么就会覆盖掉Jackson
而使用引入的依赖作为json
序列化的工具。这里以Fastjson
举例,方法和1中是一样的,只不过实现有点差别。
@Configuration
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat,
SerializerFeature.WriteMapNullValue,
SerializerFeature.DisableCircularReferenceDetect
);
fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
converters.add(0, fastJsonHttpMessageConverter);
}
}
特殊的格式:
@JSONField(format= "yyyy年MM月dd日")
@ApiModelProperty(value = "申请日期 yyyy年MM月dd日")
private LocalDateTime applyDate;
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
4 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献5条内容
所有评论(0)