feign.jackson
Class JacksonModule

java.lang.Object
  extended by feign.jackson.JacksonModule

public final class JacksonModule
extends java.lang.Object

Custom serializers/deserializers


In order to specify custom json parsing, Jackson's ObjectMapper supports serializers and deserializers, which can be bundled together in modules.


Here's an example of adding a custom module.

 public class ObjectIdSerializer extends StdSerializer<ObjectId> {
     public ObjectIdSerializer() {
         super(ObjectId.class);
     }

     @Override
     public void serialize(ObjectId value, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException {
         jsonGenerator.writeString(value.toString());
     }
 }

 public class ObjectIdDeserializer extends StdDeserializer<ObjectId> {
     public ObjectIdDeserializer() {
         super(ObjectId.class);
     }

     @Override
     public ObjectId deserialize(JsonParser jsonParser, DeserializationContext context) throws IOException {
         return ObjectId.massageToObjectId(jsonParser.getValueAsString());
     }
 }

 public class ObjectIdModule extends SimpleModule {
     public ObjectIdModule() {
         // first deserializers
         addDeserializer(ObjectId.class, new ObjectIdDeserializer());

         // then serializers:
         addSerializer(ObjectId.class, new ObjectIdSerializer());
     }
 }

 @Provides(type = Provides.Type.SET)
 Module objectIdModule() {
     return new ObjectIdModule();
 }
 


Constructor Summary
JacksonModule()
           
 
Method Summary
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JacksonModule

public JacksonModule()