一、什么是@JsonFormat

@JsonFormat用来表示json序列化的一种格式或者类型
例如:

    @JsonFormat(shape =JsonFormat.Shape.STRING,pattern ="yyyy-MM-dd HH:mm:ss",timezone ="GMT+8")
        private LocalDate createTime;

二、为什么用@JsonFormat
  @JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss这样的中文时间,因此我们需要用到JsonFormat注解来格式化我们的时间。
  简而言之,将数据库中的data类型的时间格式化为yyyy-MM-dd HH:mm:ss。

二、怎么使用@JsonFormat

1、从maven导入

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.2</version>
</dependency>

2、Params

  • shape: 表示序列化后的一种类型,枚举(详见后)

  • pattern: 表示日期的格式

  • timezone: 默认是GMT,中国需要GMT+8

  • locale: 根据位置序列化的一种格式

		
    public static enum Shape {
            ANY,
            NATURAL,
            SCALAR,
            ARRAY,
            OBJECT,
            NUMBER,
            NUMBER_FLOAT,
            NUMBER_INT,
            STRING,
            BOOLEAN;
     
            private Shape() {
            }
     
            public boolean isNumeric() {
                return this == NUMBER || this == NUMBER_INT || this == NUMBER_FLOAT;
            }
     
            public boolean isStructured() {
                return this == OBJECT || this == ARRAY;
            }
        }

参考:如何使用@JsonFormat

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐