JsonSerializable无法正常工作

时间:2014-03-30 15:39:16

标签: java json serialization

我有一个包含多个日期参数的类(Java.util.Date对象)。我使用JsonSerialize注释它们如下。

@JsonSerialize(using=JsonDateSerializer.class)
public Date getRepReceivedDate() {
    return repReceivedDate;
}

@JsonSerialize(using=JsonDateSerializer.class)
public void setRepReceivedDate(Date repReceivedDate) {
    this.repReceivedDate = repReceivedDate;
}

@JsonSerialize(using=JsonDateSerializer.class)
public Date getRepPostedDate() {
    return repPostedDate;
}

我有JsonDateSerializer类如下。

public class JsonDateSerializer extends JsonSerializer<Date>{

private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MMM-dd");

@Override
public void serialize(Date date, JsonGenerator gen, SerializerProvider provider)
        throws IOException, JsonProcessingException {

    String formattedDate = dateFormat.format(date);

    gen.writeString(formattedDate);
}

}

顺便说一句,我现在几乎没有疑惑。

  1. 当我在特定属性上调用getter时,序列化程序是否会将其序列化并将数据转换为特定格式。当我打电话给getter我得到的是2014-10-12喜欢约会。(MMM应该打印11月)而不是10我认为
  2. 之后我使用ObjectMapper创建JSON字符串。如下,

    String jsonString ="";
    try {
        PaymentEntry paymentEntry = paymentEntryService.getPaymentEntry(chequeId);
        ObjectMapper objMapper = new ObjectMapper();
        jsonString = objMapper.writeValueAsString(paymentEntry);
    } catch (Exception e) {
        e.printStackTrace();
    }
    
  3. 在jsonString中,我得到了一些日期,比如2014-Jan-02,有些像2014-04-22。

    我在这里做错了吗?

0 个答案:

没有答案