给理想留点时间,熬过低谷,繁华自现。
一、场景:返回数据对象带有时间类型属性
返回数据结构如下:(ps:SpringBoot版本为2.0.3-RELEASE)
@Setter
@Getter
public class DateResponse implements Serializable {
private LocalDate localDate = LocalDate.now();
private LocalDateTime localDateTime = LocalDateTime.now();
private LocalTime localTime = LocalTime.now();
private Date date = new Date();
}
二、出现的问题
请求返回的数据如下:
{
"localDate": [
2020,
6,
20
],
"localDateTime": [
2020,
6,
20,
11,
46,
55,
810000000
],
"localTime": [
11,
46,
55,
810000000
],
"date": 1592624815810
}
Java8的时间类型都变成了数组,Date则变成了时间戳。这和我们期望的不符,我们期望能返回如下的结果:
{
"localDate": "2020-06-21",
"localDateTime": "2020-06-21 10:41:33",
"localTime": "10:41:33",
"date": "2020-06-21 10:41:33"
}
三、分析问题
官方文档里的介绍如下所示

Spring MVC已经为我们提供了一些默认的HttpMessageConverters 来对HTTP请求内容进行转换,但显然这些默认的Converters不是我们需要的。
继续往下看,发现Spring还提供了几种方法来让我们自定义Converter
按照上面说的,可以通过自定义Jackson2ObjectMapperBuilderCustomizer、ObjectMapper、Jackson2ObjectMapperBuilder、MappingJackson2HttpMessageConv

最低0.47元/天 解锁文章
8521

被折叠的 条评论
为什么被折叠?



