Jersey + Jackson JSON date format serialization - how to change the format or use custom JacksonJsonProvider

前端 未结 8 1133
花落未央
花落未央 2020-11-30 00:54

I am using Jersey + Jackson to provide REST JSON services layer for my application. The problem I have is that the default Date serialization format looks like that:

8条回答
  •  再見小時候
    2020-11-30 01:10

    Re-write the MessageBodyWriterJSON with this

    import javax.ws.rs.core.MediaType; 
    import javax.ws.rs.ext.Provider; 
    
    import org.codehaus.jackson.jaxrs.JacksonJsonProvider; 
    import org.codehaus.jackson.map.ObjectMapper; 
    import org.codehaus.jackson.map.SerializationConfig; 
    
    @Provider 
    public class MessageBodyWriterJSON extends JacksonJsonProvider { 
                public MessageBodyWriterJSON (){ 
                } 
    
            @Override 
                public ObjectMapper locateMapper(Class type, MediaType mediaType) 
            { 
            ObjectMapper mapper = super.locateMapper(type, mediaType); 
            //DateTime in ISO format "2012-04-07T17:00:00.000+0000" instead of 'long' format 
                mapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false); 
                return mapper; 
            } 
    }
    

提交回复
热议问题