注解解决——解析date类型生成毫秒时间戳的问题

现在框架生成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
}

 

你可能感兴趣的:(注解解决——解析date类型生成毫秒时间戳的问题)