使⽤Jackson时转换JSON时,⽇期格式设置
近⽇,使⽤Jackson转化JSON对象的时候,显⽰的时候,⽇期始终显⽰不正确,输出的⽇期是⼀串数字代表的时间戳,不符合要求,所以想到Jackson应当有⽅法设置输出的⽇期格式。后来⼀查果然有两种⽅式来实现:
1.普通的⽅式:
默认是转成timestamps形式的,通过下⾯⽅式可以取消timestamps。
这样将使时间⽣成使⽤所谓的use a [ ]-compliant notation, 输出类似如下格式的时间: "1970-01-01T00:00:00.000+0000".
当然也可以⾃定义输出格式:
myDateFormat对象为DateFormat,具体使⽤清查java API
2.annotaion的注释⽅式:
先定义⾃⼰需要的格式,例如:
import java.io.IOException;
SimpleDateFormat;
import java.util.Date;
dehaus.jackson.JsonGenerator;
dehaus.jackson.JsonProcessingException;
dehaus.jackson.map.JsonSerializer;
dehaus.jackson.map.SerializerProvider;
/**
*  java⽇期对象经过Jackson库转换成JSON⽇期格式化⾃定义类
* @author godfoxjson转换对象
* @date 2010-5-3
*/
public class CustomDateSerializer extends JsonSerializer<Date> {
@Override
public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = formatter.format(value);
jgen.writeString(formattedDate);
}
}
然后在你的POJO上到⽇期的get⽅法
@JsonSerialize(using = CustomDateSerializer.class)
public Date getCreateAt() {
return createAt;
}
好了,记录完毕

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。