【发布时间】:2014-07-31 07:52:37
【问题描述】:
我想用特定格式序列化 POJO 的某些日历字段。
没有注释,这样的字段:
private Calendar timestamp1;
private Calendar timestamp2;
像这样生成 JSON:
{ ..., timestamp1: 1402402106000, timestamp2: 1402488595000, ... }
我想添加一个格式化为字符串的字段,因为它实际上将一天表示为 24 小时单位,而不是特定的时刻。但是当我添加一个带有注释的新字段时:
@JsonFormat(pattern = "yyyy-MM-dd")
private Calendar oneDay;
我希望得到这样的 JSON:
{ ..., timestamp1: 1402402106000, timestamp2: 1402488595000, oneDay: "2014-06-12", ... }
相反,我得到了以下异常:
com.fasterxml.jackson.databind.JsonMappingException:
Cannot format given Object as a Date
(through reference chain: java.util.HashMap["data"]->java.util.ArrayList[0]-myPojo["oneDay"])
我做错了什么?
我正在使用 Jackson 2.2.0
【问题讨论】:
-
显示您将“oneDay”存储到
Date的行。 -
从数据库中读取所有字段
-
稍后添加了对
@JsonFormat的支持(我认为是2.3.3);所以你可能想试试 Jackson 2.4.0。 -
我遇到了同样的问题,可以通过更新到 2.4.2 来解决