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

    //定义日期格式

    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;

    }

...

}

你可能感兴趣的:(Java)