首页 > 其他分享 >@JsonSerialize

@JsonSerialize

时间:2023-01-06 13:35:03浏览次数:48  
标签:jackson public Date import 序列化 JsonSerialize fasterxml


文章目录

  • ​​使用​​
  • ​​自定义序列化类​​
  • ​​实体标注注解​​

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

}

...

}


标签:jackson,public,Date,import,序列化,JsonSerialize,fasterxml
From: https://blog.51cto.com/u_15932195/5993028

相关文章