2013-03-12 2 views
2

나는 성공적으로 사용하여 다음 봄 3.2 잭슨이 함께 com.fasterxml.jackson.datatype.joda.JodaModule 모듈을 등록 : Jackson의 LocalDateSerializer를 ISO 날짜로 렌더링하려면 어떻게해야합니까?

<mvc:annotation-driven> 
    <mvc:message-converters> 
    <bean 
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
     <property name="objectMapper" ref="jacksonObjectMapper" /> 
    </bean> 
    </mvc:message-converters> 
</mvc:annotation-driven> 
<bean id="jacksonObjectMapper" class="org.mycompany.CustomObjectMapper" /> 

결과가 LocalDate의 직렬화가 오늘 날짜가 [2013,3,12]과 같은 날짜를 포함하는 배열, 즉 때문이다 그러나

. 어떻게하면 2013-03-12을 반환 할 수 있습니까?

+1

'JodaModule'에 의해 등록 된'LocalDateSerializer' 때문에'LocalDate'에 대한 serialzer를 오버라이드해야 할 수도 있습니다. –

+1

Thanks @ ArunPJohny, 실제로 모듈을 설정할 수 있다고 생각하지 않아도되기를 바랬습니다. 형식을 지정합니다. 방금'.fasterxml.jackson.datatype.joda. *'의 소스를 살펴 봤는데 다른 포맷은 괜찮아 보인다. 그래서이 (비) 시리얼 라이저를 등록하는 SimpleModule의 구현을 만들고 LocalDate에 대한 내 자신을 만듭니다. –

+1

그렇습니다. 모듈을 만들고 재정의해야 할 필요가 있습니다. –

답변

2

내가 을 설정하는 사용자 정의 ObjectMapper 구현을했기 때문에,이 기능을 간과하여 예상치 못한 결과를 얻었습니다.

불행하게도 기본적으로 당신이 게터이없는 DateTimeLocalDateTimeLocalDateTime 직렬화를 가질 수 없습니다, 나는 DateTimeMidnight 또한 속성이 존재하더라도 밀리 초를 배열로 렌더링하지 않습니다 것을보고 놀랐습니다.

질문에 대한 나의 의견에서 설명한대로 JodaModule (무시하지 않음)의 자체 구현을 만들어이 동작을 재정의하고 기존의 구현과 무시한 구현을 대체하는 것이 매우 간단합니다. 그러나 일부 클래스는 package-private (com.fasterxml.jackson.datatype.joda)이므로 원래 구현과 동일한 패키지 구조를 가져야합니다.

+0

Joda 모듈 용 RFE를 제출하고 싶을 수 있습니다. 차이점은 감시가 될 수도 있고 더 많은 설정 기능을 추가하는 것도 의미가 있습니다. 모듈은 상대적으로 새롭고 최상의 개선 아이디어는 사용자로부터옵니다. – StaxMan

관련 문제