在使用SpringBoot,SSM开发rest风格的接口时,通常需要对返回的JSON字符串中的值进行格式化,比如日期的格式化,值为空时不返回,忽略某些字段等,如果这些要求都需在代码中进行一个一个的控制和格式化的话,重复的代码会比较多,也不利后期的项目维护。使用Jackson的一些注解这些问题都可以迎刃而解。
Jackson的这些注解,只需要在实体类中进行使用即可,如下:
package com.example.beans;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
public class User {
private Integer age;
// 值 为 "" 时不显示
@JsonInclude(Include.NON_EMPTY)
private String name;
// 日期格式化,pattern = 格式, locale = 语言类型, timezone = 时区,GMT+8是东八区
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss a", locale = "zh", timezone = "GMT+8")
private Date birthday;
// 忽略这个字段(即不显示)
@JsonIgnore
private String password;
// 值为 null 时不显示
@JsonInclude(Include.NON_NULL)
private String desc;
public Integer getAge() {
return age;
}
}