最近在使用阿里巴巴的fastjson反序列化對(duì)象的時(shí)候,對(duì)象里面時(shí)間格式屬性總是會(huì)多了一個(gè)T
2021-1-09T18:29:09.097
這個(gè)T是啥國(guó)際標(biāo)準(zhǔn),但是我們的前端又不需要這個(gè)T,所以就要想辦法去掉T。
先看代碼
1、添加 LocalDateTimeSerializerConfig ,這個(gè)照搬過(guò)去就行了
1 package com.dt.cloud.config; 2 3 import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; 4 import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; 5 import org.springframework.context.annotation.Bean; 6 import org.springframework.context.annotation.Configuration; 7 import java.time.LocalDateTime; 8 import java.time.format.DateTimeFormatter; 9 10 /** 11 * @Description: 去掉LocalDateTime帶T的問(wèn)題 12 * @author: Zhang Chonghu 13 * @Date: 2021/1/27 9:51 14 * @Copyright: Xi'an Dian Tong Software Co., Ltd. All Rights Reserved. 15 * @Version 1.0 16 */ 17 @Configuration 18 public class LocalDateTimeSerializerConfig { 19 @org.springframework.beans.factory.annotation.Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}") 20 private String pattern; 21 @Bean 22 public LocalDateTimeSerializer localDateTimeDeserializer() { 23 return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern)); 24 } 25 @Bean 26 public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() { 27 return builder -> builder.serializerByType(LocalDateTime.class, localDateTimeDeserializer()); 28 } 29 30 }
在給小白們看看這個(gè)目錄,我們項(xiàng)目是有個(gè)config包專門管理這些config配置類的
2、做完配置,就要做一些代碼的操作了
1 @JSONField(name="CreateTime") 2 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") 3 private LocalDateTime createTime; 4 5 @JSONField(name="CreateBy") 6 private Integer createBy; 7 8 @JSONField(name="ChangeTime") 9 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") 10 private LocalDateTime changeTime;
注意,我這兩個(gè)時(shí)間屬性是在Queue實(shí)體類中的,這里就貼這兩個(gè)屬性的代碼出來(lái)。這里要做的就是加上@JsonFormat,上圖
3、重點(diǎn)來(lái)了,注意看,我是先重?cái)?shù)據(jù)庫(kù)中查詢出queue這個(gè)對(duì)象,在利用阿里巴巴直接序列化這個(gè)queue對(duì)象
這里要說(shuō)明的是,因?yàn)闃I(yè)務(wù)需要,我要把整個(gè)對(duì)象返回,所以要序列化這個(gè)對(duì)象,再序列化那兩個(gè)時(shí)間屬性,如果我們只需要時(shí)間屬性,不需要其他屬性,直接序列化時(shí)間屬性返回就行了。
0k,下課?。?!
聯(lián)系客服