欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot?jackson提供對LocalDate的支持方式

 更新時間:2022年01月26日 09:47:29   作者:myCat、  
這篇文章主要介紹了SpringBoot?jackson提供對LocalDate的支持方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

jackson提供對LocalDate的支持

SpringBoot默認(rèn)使用jackson來進(jìn)行json格式轉(zhuǎn)換,我們在配置文件中加入如下配置可以統(tǒng)一的改變Spring MVC返回值的日期格式類型

spring.jackson.date-format=yyyy-MM-dd
spring.jackson.time-zone=GMT+8
spring.jackson.serialization.write-dates-as-timestamps=false

但是這個配置對于java8新提供的日期APILocalDate、LocalDateTime等無效。

解決辦法

引入依賴

<dependency>
? ? ? <groupId>com.fasterxml.jackson.datatype</groupId>
? ? ? <artifactId>jackson-datatype-jsr310</artifactId>
? ? ? <version>2.8.9</version>
</dependency>

啟動主類添加如下代碼

@SpringBootApplication
public class GroupApplication {
? ? public static void main(String[] args) {
? ? ? ? SpringApplication.run(GroupApplication.class, args);
? ? }
?
? ? /**
? ? ?* 提供jackson對LocalDate等java8提供的日期的序列化支持
? ? ?*/
?
? ? @Bean(name = "mapperObject")
? ? public ObjectMapper getObjectMapper() {
? ? ? ? ObjectMapper om = new ObjectMapper();
? ? ? ? JavaTimeModule javaTimeModule = new JavaTimeModule();
? ? ? ? javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
? ? ? ? javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
? ? ? ? javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
? ? ? ? om.registerModule(javaTimeModule);
? ? ? ? return om;
? ? }
}

使用Jackson格式化LocalDate對象

LocalDate可以很方便的對日期進(jìn)行處理,但是在返回給前端時,展示為如下的JSON結(jié)構(gòu):

{
?? ?"dayOfWeek": "FRIDAY",
?? ?"month": "JANUARY",
?? ?"year": 2020,
?? ?"dayOfMonth": 3,
?? ?"era": "CE",
?? ?"dayOfYear": 3,
?? ?"monthValue": 1,
?? ?"chronology": {
?? ??? ?"calendarType": "iso8601",
?? ??? ?"id": "ISO"
?? ?}
}

前端組件就很難處理了。接下來,我們需要將此屬性反序列化并從JSON字符串序列化。為此,我們可以使用@JsonDeserialize和@JsonSerialize來注釋該類的LocalDate屬性,時期成為前端組件需要的String格式。

實(shí)現(xiàn)LocalDateDeserializer和LocalDateSerializer

下面是LocalDateSerializerand LocalDateDeserializer類的定義。

public class LocalDateDeserializer extends StdDeserializer<LocalDate> {
?? ?protected LocalDateDeserializer() {
?? ??? ?super(LocalDate.class);
?? ?}
?? ?@Override
?? ?public LocalDate deserialize(JsonParser parser, DeserializationContext context) throws IOException {
?? ??? ?return LocalDate.parse(parser.readValueAs(String.class));
?? ?}
}
public class LocalDateSerializer extends StdSerializer<LocalDate> {
?? ?public LocalDateSerializer() {
?? ??? ?super(LocalDate.class);
?? ?}
?? ?@Override
?? ?public void serialize(LocalDate value, JsonGenerator generator, SerializerProvider provider) throws IOException {
?? ??? ?generator.writeString(value.format(DateTimeFormatter.ISO_LOCAL_DATE));
?? ?}
}

實(shí)體類添加注解

實(shí)體類添加如下的注解

? ? @JsonDeserialize(using = LocalDateDeserializer.class)
? ? @JsonSerialize(using = LocalDateSerializer.class)
? ? private LocalDate date;

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java實(shí)現(xiàn)簡單發(fā)送郵件功能

    java實(shí)現(xiàn)簡單發(fā)送郵件功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡單發(fā)送郵件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • java多線程實(shí)現(xiàn)交通燈管理系統(tǒng)

    java多線程實(shí)現(xiàn)交通燈管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java多線程實(shí)現(xiàn)交通燈管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • IntellJ IDEA JAVA代碼任務(wù)標(biāo)記實(shí)例解析

    IntellJ IDEA JAVA代碼任務(wù)標(biāo)記實(shí)例解析

    這篇文章主要介紹了IntellJ IDEA JAVA代碼任務(wù)標(biāo)記實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Java解析使用JSON的多種方法

    Java解析使用JSON的多種方法

    使用JSON作為數(shù)據(jù)傳輸,在瀏覽器端非常方便。JSON去除了所有JavaScript執(zhí)行代碼,只保留對象格式,而且JSON天生適合JavaScript處理,所以,絕大多數(shù)REST?API都選擇JSON作為數(shù)據(jù)傳輸格式?,F(xiàn)在問題來了:使用Java如何對JSON進(jìn)行讀寫?
    2022-12-12
  • Hadoop源碼分析一架構(gòu)關(guān)系簡介

    Hadoop源碼分析一架構(gòu)關(guān)系簡介

    本篇是Hadoop源碼分析系列文章第一篇,主要介紹一下Hadoop的基礎(chǔ)簡介以及框架關(guān)系,后續(xù)本系列文章會持續(xù)更新,有需要的朋友可以借鑒參考下
    2021-09-09
  • java GUI編程之paint繪制操作示例

    java GUI編程之paint繪制操作示例

    這篇文章主要介紹了java GUI編程之paint繪制操作,結(jié)合實(shí)例形式詳細(xì)分析了java GUI編程paint繪制相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • Java微信公眾平臺之消息管理

    Java微信公眾平臺之消息管理

    這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺之消息管理的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • maven工程中jar包瘦身的五種方法

    maven工程中jar包瘦身的五種方法

    這篇文章主要介紹了maven工程中jar包瘦身的五種方法,幫助大家更好的理解和使用maven,感興趣的朋友可以了解下
    2021-02-02
  • SpringBoot使用protobuf格式的接口方式

    SpringBoot使用protobuf格式的接口方式

    這篇文章主要介紹了SpringBoot使用protobuf格式的接口方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java系統(tǒng)運(yùn)行緩慢等問題的排查思路

    Java系統(tǒng)運(yùn)行緩慢等問題的排查思路

    這篇文章主要介紹了Java系統(tǒng)運(yùn)行緩慢等問題的排查思路,讀者可以根據(jù)具體情況具體分析,從而解決問題
    2021-04-04

最新評論