我想序列化具有特定格式的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
答案 0 :(得分:5)
以下是我使用的内容:@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
这适合我。