我有一个包含多个日期参数的类(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);
}
}
顺便说一句,我现在几乎没有疑惑。
之后我使用ObjectMapper创建JSON字符串。如下,
String jsonString ="";
try {
PaymentEntry paymentEntry = paymentEntryService.getPaymentEntry(chequeId);
ObjectMapper objMapper = new ObjectMapper();
jsonString = objMapper.writeValueAsString(paymentEntry);
} catch (Exception e) {
e.printStackTrace();
}
在jsonString中,我得到了一些日期,比如2014-Jan-02,有些像2014-04-22。
我在这里做错了吗?