2016-02-29 38 views
1

我使用澤西2與傑克遜功能和JodaTime日期時間。所以它適用於我不需要HH:mm:ss的日期,但現在我做了,而且我在服務器上收到的時間總是錯誤的。澤西2與傑克遜1功能和喬達日期時間不正確的JSON格式

通過LoggingFilter的調試後,我發現了日期正在這樣寫的:

{"id":1,"priority":"NORMAL","start":1456747200000,"end":1456527600000,"conclusion":null} 

因此,搜索後,我咬我看到了一個解決方案說,使「WRITE_DATE_AS_TIMESTAMPS」。這就是我已經做到了:

@Provider 
public class JerseyObjectMapperProvider implements 
     ContextResolver<ObjectMapper> { 

    final ObjectMapper defaultObjectMapper; 

    public JerseyObjectMapperProvider() { 
     defaultObjectMapper = createDefaultMapper(); 
    } 

    @Override 
    public ObjectMapper getContext(Class<?> type) { 
     return defaultObjectMapper; 
    } 

    private static ObjectMapper createDefaultMapper() { 
     final ObjectMapper result = new ObjectMapper(); 
     result.configure(Feature.WRITE_DATES_AS_TIMESTAMPS, true); 

     return result; 
    } 

} 

,註冊:

client = ClientBuilder.newClient(new ClientConfig() 
       .register(new JerseyObjectMapperProvider()) 
       .register(new Jackson1Feature()) 
       .register(new MultiPartFeature())); 

但這didnt解決我的問題。 JSON輸出是一樣的。現在我必須問,如何解決這個日期問題?

謝謝

+0

你爲什麼要_ENABLE 「WRITE_DATE_AS_TIMESTAMPS」 _?你認爲這意味着什麼?你不覺得你應該**嗎?默認值爲true –

+0

我想我很想讀它。你有什麼想法可以讓傑克遜發送正確的日期格式嗎? –

回答

2

你應該使用喬達模塊:

mapper.registerModule(new JodaModule()); 

這裏maven的依賴性:

<dependency> 
    <groupId>com.fasterxml.jackson.datatype</groupId> 
    <artifactId>jackson-datatype-joda</artifactId> 
    <version>2.4.0</version> 
</dependency>