2015-01-26 13 views

cevap

4

Yapmak sağlayacak basit bir Jackson8Module yapabilirsiniz şunlardır:

ObjectMapper jacksonMapper = new ObjectMapper(); 
Jackson8Module module = new Jackson8Module(); 
module.addStringSerializer(LocalDate.class, (val) -> val.toString()); 
module.addStringSerializer(LocalDateTime.class, (val) -> val.toString()); 
jacksonMapper.registerModule(module); 

Jackson8Module kodu sadece Jackson SimpleModule (diğer Jackson Modülü yöntemlerini desteklemek için uzatılabilir Java 8 dostu yöntemler sağlamaktır uzanır): https://gist.github.com/jeremychone/a7e06b8baffef88a8816

: Burada
public class Jackson8Module extends SimpleModule { 

    public <T> void addCustomSerializer(Class<T> cls, SerializeFunction<T> serializeFunction){ 
     JsonSerializer<T> jsonSerializer = new JsonSerializer<T>() { 
      @Override 
      public void serialize(T t, JsonGenerator jgen, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { 
       serializeFunction.serialize(t, jgen); 
      } 
     }; 
     addSerializer(cls,jsonSerializer); 
    } 

    public <T> void addStringSerializer(Class<T> cls, Function<T,String> serializeFunction) { 
     JsonSerializer<T> jsonSerializer = new JsonSerializer<T>() { 
      @Override 
      public void serialize(T t, JsonGenerator jgen, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { 
       String val = serializeFunction.apply(t); 
       jgen.writeString(val); 
      } 
     }; 
     addSerializer(cls,jsonSerializer); 
    } 

    public static interface SerializeFunction<T> { 
     public void serialize(T t, JsonGenerator jgen) throws IOException, JsonProcessingException; 
    } 
} 

Jackson8Module özü buydu
İlgili konular