Java tutorial
/* * Copyright 2016 Adobe Systems Incorporated. All rights reserved. * * This file is licensed to you under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. */ package com.adobe.api.platform.msc.client.jackson; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.module.SimpleModule; import javax.ws.rs.Produces; import javax.ws.rs.core.Link; import javax.ws.rs.core.MediaType; import javax.ws.rs.ext.ContextResolver; import javax.ws.rs.ext.Provider; /** * @author Cristian Constantin * @since 1/9/15 */ @Provider @Produces(MediaType.APPLICATION_JSON) public class JacksonConfig implements ContextResolver<ObjectMapper> { private final ObjectMapper mapper; public JacksonConfig() { mapper = new ObjectMapper(); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); // registering a module to serialize and deserialize JAX-RS Link objects SimpleModule linkModule = new SimpleModule("JaxRsLinkModule"); linkModule.addSerializer(Link.class, new LinkSerializer()); linkModule.addDeserializer(Link.class, new LinkDeserializer()); mapper.registerModule(linkModule); } @Override public ObjectMapper getContext(Class<?> objectType) { return mapper; } }