SpringBoot实现WebMvcConfigurationSupport导致自定义的JSON时间返回格式不生效

给理想留点时间,熬过低谷,繁华自现。

一、场景:返回数据对象带有时间类型属性

返回数据结构如下:(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在这里插入图片描述
按照上面说的,可以通过自定义Jackson2ObjectMapperBuilderCustomizerObjectMapperJackson2ObjectMapperBuilderMappingJackson2HttpMessageConv

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值