application.properties中加入如下代碼
springboot 默認(rèn)使用 jackson 解析 json
1
2
|
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 |
如果個別實體需要使用其他格式的 pattern,在實體上加入注解即可
1
2
3
4
5
6
7
8
|
import org.springframework.format.annotation.DateTimeFormat; import com.fasterxml.jackson.annotation.JsonFormat; public class MrType { @JsonFormat (timezone = "GMT+8" ,pattern = "yyyy-MM-dd" ) @DateTimeFormat (pattern= "yyyy-MM-dd" ) private Date createdDate; } |
Spring Boot 日期數(shù)據(jù)格式轉(zhuǎn)換@JsonFormat實例
pojo的bean里面通常會有Date類型的數(shù)據(jù),直接通過@ResponseBody返回出去的是一個長整型時間戳(從1970到該變量時間的毫秒數(shù)),關(guān)于原因,網(wǎng)上很多,此處不細(xì)講。如果想要返回自定義的日期格式,如:yyyymmddhhmmss,需做相關(guān)處理,網(wǎng)上有很多處理方式,大體都是繼承、重寫,比較復(fù)雜。實際上JSON已有注解@JsonFormat支持,使用實例:
1
2
|
@JsonFormat (timezone = "GMT+8" , pattern = "yyyyMMddHHmmss" ) private Date createTime; |
作用:1)入?yún)r,請求報文只需要傳入yyyymmddhhmmss字符串進(jìn)來,則自動轉(zhuǎn)換為Date類型數(shù)據(jù)。2)出參時,Date類型的數(shù)據(jù)自動轉(zhuǎn)換為14位的字符串返回出去。
相關(guān)的其他注解:
- @JsonIgnoreProperties 此注解是類注解,作用是json序列化時將java bean中的一些屬性忽略掉,序列化和反序列化都受影響。 @JsonIgnoreProperties(value = { "word" })
- @JsonIgnore 此注解用于屬性或者方法上(最好是屬性上),作用和上面的@JsonIgnoreProperties一樣。
- @JsonSerialize 此注解用于屬性或者getter方法上,用于在序列化時嵌入我們自定義的代碼,比如序列化一個double時在其后面限制兩位小數(shù)點。 @JsonSerialize(using = CustomDoubleSerialize.class)
- @JsonDeserialize 此注解用于屬性或者setter方法上,用于在反序列化時可以嵌入我們自定義的代碼,類似于上面的@JsonSerialize @JsonDeserialize(using = CustomDateDeserialize.class)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://www.jianshu.com/p/a6f8857eff78