作用
此注解用于屬性或者getter方法上,用于在序列化時嵌入開發者自定義的代碼。比如将一個Date類型的變量轉換成Long類型,或是序列化一個double時在其後面限制兩位小數點。
使用
下面以将日期格式化為yy-mm-dd為例。
1.自定義日期序列化類
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 日期序列化工具,直接将時間類型的轉為yyyy-MM-dd類型的資料
*/
public class CustomDateSerialize extends JsonSerializer<Date> {
//定義日期格式
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@Override
public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
jsonGenerator.writeString(sdf.format(date));
}
}
2.在實體的get方法上加上@JsonSerialize(using = CustomDateSerialize.class)
public class User{
private String userName;
private String password;
private Date loginDate;
@JsonSerialize(using= CustomDateSerialize.class)
public Date getLoginDate(){
return this.loginDate;
}
...
}
參考:https://blog.csdn.net/qq_29645505/article/details/89007323