天天看點

@JsonSerialize注解簡介

作用

此注解用于屬性或者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

繼續閱讀