现在框架生成json用的是jackson。
解析date类型时,生成的是毫秒的时间戳。
按照要求格式化,采用注解形式
1第一、写一个序列化Date类型的类,该类继承自com.fasterxml.jackson.databind.JsonSerializer。
1
2
3
4
5
6
7
8
9
|
public
class
CustomDateSerializer extends
JsonSerializer<Date> {
@Override
//覆盖serialize解析数据的方法
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);
}
}
|
第二,在data类型的属性geter方法上打注解,告诉jackson,这个属性生成json时用CustomDateSerializer 来处理。
1
2
3
4
5
6
|
private
Date yxq;
@JsonSerialize (using
= CustomDateSerializer. class )
public
Date getYxq() {
return
yxq;
}
|
第三,生成json
1
2
3
|
YpdmSimple
obj = new
YpdmSimple ();
String
json = JsonUtil.toJson(obj );
System.out.println(json);
|
结果:注意有效期
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
{
"pym"
: "gpgdd" ,
"ypbm"
: "00001100" ,
"tym"
: "骨盆固定带" ,
"cd"
: "山东潍坊" ,
"ypgg"
: "1*" ,
"yklsj"
: 2.0000,
"pc"
: "0000000001" ,
"ph"
: "23" ,
"yxq"
: "2012-05-20" ,
"kcl"
: 23.0000,
"jhj"
: 23.0000,
"cfbl"
: 2,
"ykpfj"
: null ,
"ykdw"
: null
}
|