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