spring boot可以自定义json序列化,比如我们经常遇到的日期的json序列化和反序列化,spring中默认的是显示时间戳,如下所示:我们可以通过自定义的方式来格式化日期格式。
如下所示:使用@JsonComponent表示是一个json的component会自动扫描为bean,通过JsonSerializer和JsonDeserializer来定义序列化和反序列化的规则,如下所示定义的是一个日期的json规则,此方式可以定义任何对象的序列化规则。
此种方式的优点是,任何对象都可以定义序列化和反序列化规则,缺点是无法个性化服务,比如某一实体里面日期是yyyy-MM-dd,另一实体是yyyy-MM-dd HH:mm:ss。
如果是单纯的日期格式问题,又想使用个性化定义,可以在实体里面使用@JsonFormat(pattern="yyyy-MM-dd")如下:
还有一种格式化日期的方法就是修改objectMapper的bean,如下所示:也可以定义日期的格式,此种方式代码少,相对简洁。