杰克逊日期格式与@JsonFormat?

1 java json jackson

我想序列化具有特定格式的POJO的某些日历字段.

没有注释,这样的字段:

private Calendar timestamp1;
private Calendar timestamp2;
Run Code Online (Sandbox Code Playgroud)

像这样产生JSON:

{ ..., timestamp1: 1402402106000, timestamp2: 1402488595000, ... }
Run Code Online (Sandbox Code Playgroud)

我想添加一个格式化为字符串的字段,因为它实际上代表一天作为24小时单位,而不是特定的时刻.但是当我添加带注释的新字段时:

@JsonFormat(pattern = "yyyy-MM-dd")
private Calendar oneDay;
Run Code Online (Sandbox Code Playgroud)

我希望得到像这样的JSON:

{ ..., timestamp1: 1402402106000, timestamp2: 1402488595000, oneDay: "2014-06-12", ... }
Run Code Online (Sandbox Code Playgroud)

相反,我得到了以下异常:

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"])
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我正在使用Jackson 2.2.0

Jon*_*son 5

这是我用过的东西: @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")

这对我行得通.