Registering JacksonJsonProvider with ObjectMapper + JavaTimeModule to Jersey 2 Client

后端 未结 3 1910
没有蜡笔的小新
没有蜡笔的小新 2021-02-04 09:46

I\'m trying to marshal response containing ISO formatted timestamp like that:

{
...
    \"time\" : \"2014-07-02T04:00:00.000000Z\"
...
}

into <

3条回答
  •  醉酒成梦
    2021-02-04 10:38

    From my pet project:

    
        com.fasterxml.jackson.datatype
        jackson-datatype-jsr310
        ${jackson.version}
    
    
    public WebTarget getTarget(URI uri) {
        Client client = ClientBuilder
                .newClient()
                .register(JacksonConfig.class);
        return client.target(uri);
    }
    

    where

    @Provider
    public class JacksonConfig implements ContextResolver {
    
        private final ObjectMapper objectMapper;
    
        public JacksonConfig() {
            objectMapper = new ObjectMapper();
            objectMapper.registerModule(new JavaTimeModule());
            objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
            objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
            objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        }
    
        @Override
        public ObjectMapper getContext(Class aClass) {
            return objectMapper;
        }
    }
    

提交回复
热议问题