2014-06-10 42 views
1

我想以特定格式序列化POJO的某些日曆字段。帶@JsonFormat的傑克遜日期格式?

不帶註釋的,田野就像這樣:

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"]) 

我究竟做錯了什麼?

我使用的是傑克遜2.2.0

+0

顯示將「oneDay」存儲在「Date」中的行。 – Sufian

+0

所有的字段都從數據庫中讀出 – ligboo

+0

在稍後的時間點(2.3.3我認爲)增加了對帶有日期的'@ JsonFormat'的支持。所以你可能想試試傑克遜2.4.0。 – StaxMan

回答

5

下面是我用什麼:@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")

這對我的作品。