@JsonFormat用法

时间:2025-04-01 08:32:47

@JsonFormat是Jackson库中的一个注解,用于指定Java对象序列化成JSON字符串时的格式。它可以用于日期、时间、数字等类型的字段上。

使用@JsonFormat注解时,需要指定一些属性,例如:

  • pattern:日期、时间格式的模式,比如yyyy-MM-dd HH:mm:ss;
  • shape:日期、时间格式的类型,可以是STRING、NUMBER、NUMBER_INT、NUMBER_FLOAT、OBJECT等;
  • locale:使用的Locale;
  • timezone:时区。

示例:

public class Book {
    private String name;
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date publishDate;
    private int pages;
    // 省略getter/setter方法
}

在上面的代码中,publishDate字段被@JsonFormat注解修饰,指定了日期格式为yyyy-MM-dd HH:mm:ss,时区为GMT+8。

当将Book对象序列化成JSON字符串时,publishDate字段将按照上述指定的格式进行序列化。例如:

{
  "name": "Java编程思想",
  "publishDate": "2021-08-01 10:00:00",
  "pages": 1000
}