如何使用@JsonFormat

@JsonFormat的通常出现在javaBean中的属性上,用来表示json序列化的一种格式或者类型。比如:

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


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

  使用@JsonFormat注解需要引入maven依赖如下:

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


     引入以上的pmaven依赖之后,就可以在实体类属性上面使用@JsonFormat注解了,要注意的是,它只会在声明返回类型为json时,比如使用@ResponseBody返回json数据的时候,才会返回格式化的yyyy-MM-dd HH:mm:ss时间,如果直接使用System.out.println()输出的话,仍然是类似“Fri Dec 01 21:05:20 CST 2017”这样的时间样式。

@JsonFormat有以下几个属性,了解它的属性含义可以使我们更好的使用这个注解。

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;
        }
    }

shap: 表示序列化后的一种类型。shap在源码中是枚举类型,有如下几个属性值,代表不同的类型:

pattern: 表示日期的格式

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

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

 恰当的使用@JsonFormat可以使代码更加简洁,因为它可以减少很多不必要的类型转换。

原文链接:https://blog.csdn.net/weixin_41860630/article/details/101928062

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值