最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中注解@JsonFormat的用法詳解

 更新時(shí)間:2023年01月06日 12:04:35   作者:喝汽水的貓^  
這篇文章主要給大家介紹了關(guān)于Java中注解@JsonFormat用法的相關(guān)資料,以及分享了@JsonFormat 將枚舉序列化為對(duì)象的方法,文中給出了詳細(xì)的代碼實(shí)例,需要的朋友可以參考下

一、@JsonFormat是什么?

通常日期格式都是以時(shí)間戳的形式存放在數(shù)據(jù)庫里,當(dāng)前端頁面通過接口查詢時(shí),我們會(huì)將一個(gè)對(duì)象的某些屬性查出來返回給頁面。

類似在實(shí)體類上加上改注解:

二、@JsonFormat參數(shù)講解

1.locale代表中國(guó)的意思:中國(guó)時(shí)間段

2.pattern寫的就是對(duì)于數(shù)據(jù)庫的時(shí)間段

  • yyyy代表-年
  • MM代表-月
  • dd代表-日
  • HH代表-時(shí)
  • mm代表分
  • ss代表-秒

3.TimeZone

TimeZone 表示時(shí)區(qū)偏移量,也可以計(jì)算夏令時(shí)。

在操作 Date, Calendar等表示日期/時(shí)間的對(duì)象時(shí),經(jīng)常會(huì)用到TimeZone;因?yàn)椴煌臅r(shí)區(qū),時(shí)間不同。

那么timezone加上GMT+8什么意思呢?

GMT 就是格林威治標(biāo)準(zhǔn)時(shí)間的英文縮寫(Greenwich Mean Time 格林尼治標(biāo)準(zhǔn)時(shí)間),是世界標(biāo)準(zhǔn)時(shí)間,gmt+8 是格林威治時(shí)間+8小時(shí),中國(guó)所在時(shí)區(qū)就是gmt+8 。

附:@JsonFormat 將枚舉序列化為對(duì)象

Java Enum

@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum EmployeeType {
    FullTime("Full Time"), PartTime("Part Time");

    private String displayName;

    EmployeeType(String displayName) {
        this.displayName = displayName;
    }

    public String getDisplayName() {
        return displayName;
    }
}
public class Employee {
    private String name;
    private EmployeeType employeeType;
    ...
}    

Main Class

public class ExampleMain {
    public static void main(String[] args) throws IOException {
        Employee employee = new Employee();
        employee.setName("Amy");
        employee.setEmployeeType(EmployeeType.PartTime);

        System.out.println("-- before serialization --");
        System.out.println(employee);

        System.out.println("-- after serialization --");
        ObjectMapper om = new ObjectMapper();
        String jsonString = om.writeValueAsString(employee);
        System.out.println(jsonString);

        System.out.println("-- after deserialization --");
        System.out.println(om.readValue(jsonString, Employee.class));
    }
}

枚舉被序列化為了 JSON 對(duì)象,但無法反序列化。

-- before serialization --
Employee{name='Amy', employeeType=PartTime}
-- after serialization --
{"name":"Amy","employeeType":{"displayName":"Part Time"}}
-- after deserialization --
Exception in thread "main" com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `org.example.c27.EmployeeType` from Object value (token `JsonToken.START_OBJECT`)
 at [Source: (String)"{"name":"Amy","employeeType":{"displayName":"Part Time"}}"; line: 1, column: 30] (through reference chain: org.example.c27.Employee["employeeType"])
	at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)
	at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1601)
	at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1375)
	at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1280)
	at com.fasterxml.jackson.databind.DeserializationContext.extractScalarFromObject(DeserializationContext.java:872)
	at com.fasterxml.jackson.databind.deser.std.EnumDeserializer.deserialize(EnumDeserializer.java:199)
	at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:324)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:187)
	at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:322)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4593)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3548)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3516)
	at org.example.c27.ExampleMain.main(ExampleMain.java:28)

Process finished with exit code 1

不使用 @JsonFormat

-- before serialization --
Employee{name='Amy', employeeType=PartTime}
-- after serialization --
{"name":"Amy","employeeType":"PartTime"}
-- after deserialization --
Employee{name='Amy', employeeType=PartTime}

總結(jié) 

到此這篇關(guān)于Java中注解@JsonFormat用法的文章就介紹到這了,更多相關(guān)Java注解@JsonFormat內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java用POI導(dǎo)入導(dǎo)出Excel實(shí)例分析

    Java用POI導(dǎo)入導(dǎo)出Excel實(shí)例分析

    在本篇文章里小編給大家整理的是一篇關(guān)于Java用POI導(dǎo)入導(dǎo)出Excel實(shí)例分析內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)下。
    2021-11-11
  • 學(xué)Java做項(xiàng)目需要學(xué)習(xí)的一些技能

    學(xué)Java做項(xiàng)目需要學(xué)習(xí)的一些技能

    這篇文章主要介紹了學(xué)Java做項(xiàng)目需要學(xué)習(xí)的一些技能,例如JavaSE、Servlet、JSP等,總結(jié)了他們中需要學(xué)習(xí)的東西,都是一些經(jīng)驗(yàn)總結(jié),需要的朋友可以參考下
    2014-07-07
  • My eclipse 端口占用(9360)問題解決辦法

    My eclipse 端口占用(9360)問題解決辦法

    這篇文章主要介紹了My eclipse 工程發(fā)布時(shí)出現(xiàn)端口占用問題解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 基于java線程池讀取單個(gè)SQL數(shù)據(jù)庫表

    基于java線程池讀取單個(gè)SQL數(shù)據(jù)庫表

    這篇文章主要為大家詳細(xì)介紹了基于java線程池讀取單個(gè)SQL數(shù)據(jù)庫表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • java對(duì)象與json對(duì)象間的相互轉(zhuǎn)換的方法

    java對(duì)象與json對(duì)象間的相互轉(zhuǎn)換的方法

    本篇文章主要介紹了java對(duì)象與json對(duì)象間的相互轉(zhuǎn)換的方法,詳細(xì)介紹了json字符串和java對(duì)象相互轉(zhuǎn)換,有興趣的可以了解一下
    2017-01-01
  • Spring Profiles使用方法詳解

    Spring Profiles使用方法詳解

    在你剛接觸SpringBoot的時(shí)候有沒有對(duì)它提供的Profile有些許不適應(yīng),經(jīng)過摸索后才領(lǐng)悟到它的強(qiáng)大。今天我就對(duì)Profile進(jìn)行一點(diǎn)歸納總結(jié),留作互聯(lián)網(wǎng)記憶
    2022-12-12
  • javaNIO中關(guān)于ByteBuffer的用法

    javaNIO中關(guān)于ByteBuffer的用法

    這篇文章主要介紹了javaNIO中關(guān)于ByteBuffer的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Liquibase 在 Spring Boot 中的使用詳細(xì)介紹

    Liquibase 在 Spring Boot 中的使用詳細(xì)介紹

    Liquibase 提供了靈活的變更集機(jī)制,支持創(chuàng)建表、修改列、填充數(shù)據(jù)、回滾變更等多種操作,本文將通過多個(gè)豐富的示例,詳細(xì)講解如何在 Spring Boot項(xiàng)目中使用 Liquibase,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • Spring Security無法調(diào)用接口錯(cuò)誤的問題解決

    Spring Security無法調(diào)用接口錯(cuò)誤的問題解決

    記錄一下之前在寫程序的時(shí)候遇到的問題,Spring Security無法調(diào)用接口錯(cuò)誤的問題,本文就來介紹一下解決方法,感興趣的可以了解一下
    2023-08-08
  • Spring Data Jpa 復(fù)合主鍵的實(shí)現(xiàn)

    Spring Data Jpa 復(fù)合主鍵的實(shí)現(xiàn)

    這篇文章主要介紹了Spring Data Jpa 復(fù)合主鍵的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評(píng)論

诸暨市| 普格县| 扎鲁特旗| 安国市| 南郑县| 太仓市| 陆丰市| 鄂托克旗| 霍州市| 南城县| 舞阳县| 静海县| 太谷县| 新巴尔虎右旗| 韶山市| 织金县| 石楼县| 交口县| 武义县| 阿尔山市| 二连浩特市| 扶沟县| 南昌市| 乌拉特后旗| 浦江县| 长子县| 华宁县| 郧西县| 赤壁市| 阿拉善左旗| 出国| 思南县| 宁阳县| 望奎县| 华池县| 任丘市| 红河县| 渝北区| 海丰县| 巴里| 益阳市|