2014-06-10 2 views
1

특정 형식의 POJO의 특정 일정 필드를 직렬화하려고합니다. 이 같은@JsonFormat의 Jackson 날짜 형식?

없는 주석

, 필드 :이 같은

private Calendar timestamp1; 
private Calendar timestamp2; 

생산 JSON :

{ ..., timestamp1: 1402402106000, timestamp2: 1402488595000, ... } 

나는 그것이 실제로 24 하루를 나타내는 같은 문자열로 포맷 필드를 추가 할 것 - 시간 단위가 아닌 시간 단위. 내가 주석에 새 필드를 추가 할 때 :

@JsonFormat(pattern = "yyyy-MM-dd") 
private Calendar oneDay; 

이 같은 JSON을 얻을 수 있었으면했다 :

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

:

{ ..., timestamp1: 1402402106000, timestamp2: 1402488595000, oneDay: "2014-06-12", ... } 

을 대신에, 나는 다음과 같은 예외가 있어요 내가 도대체 ​​뭘 잘못하고있는 겁니까? 내가

+0

"날짜"에 "oneDay"를 저장할 행을 표시하십시오. – Sufian

+0

모든 필드가 데이터베이스에서 읽습니다. – ligboo

+0

날짜가있는'@JsonFormat'에 대한 지원이 추후에 추가되었습니다 (2.3.3 생각합니다). 그래서 Jackson 2.4.0을 사용해 볼 수 있습니다. – StaxMan

답변

5

잭슨 2.2.0을 사용하고

여기에 내가 사용한 적이 무엇 : 나를 위해 작동 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")

.