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

本文介绍如何使用Jackson将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
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值