文章目录
- 使用
- 自定义序列化类
- 实体标注注解
此注解用于属性或者
getter
方法上,用于在序列化时嵌入开发者自定义的代码。比如将一个Date
类型的变量转换成Long
类型,或是序列化一个double
时在其后面限制两位小数点。
使用
自定义序列化类
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));
}
}
实体标注注解
public class User{
private String userName;
private String password;
private Date loginDate;
@JsonSerialize(using= CustomDateSerialize.class)
public Date getLoginDate(){
return this.loginDate;
}
...
}