2014-01-16 4 views
2

Я работаю над службой REST с использованием Jackson2 и Spring.Пользовательская аннотация с Jackson 2 Java для JSON deserializer

Я знаю, что Jackson2 предоставляет набор очень полезных аннотаций. В соответствии с требованием мы должны представить наши собственные аннотации (например, @Summary, @Detail и т. Д.).

Я хочу понять, можно ли использовать Джексона собственные аннотации вместе с предоставленными вами.

Цените, если кто-нибудь может показать некоторые примеры или указать мне какую-либо документацию.

ответ

0

http://blog.palominolabs.com/2012/06/05/writing-a-custom-jackson-serializer-and-deserializer/ вот хороший учебник, но я думаю, вам нужно добавить @jsonserializer и @jsondeserealizer над выбранным полем, эти аннотации получат класс, в котором вы должны проходить от сериализатора и десериализатора в каждом случае и реализовывать логику, которую вы хотите для процесса.

http://texscribbles.blogspot.mx/2010/07/custom-json-serialization-with-spring.html?m=1

@JsonSerialize(using = JsonDateSerializer.class) 
@JsonDeserialize(using = JsonDateDeserializer.class) 
private Date approvalDate; 



public class JsonDateSerializer extends JsonSerializer<Date> { 

@Override 
public void serialize(final Date value, final JsonGenerator jgen, 
     final SerializerProvider provider) throws IOException, 
     JsonProcessingException { 
    jgen.writeString(String.valueOf(value.getTime())); 
} 
} 
+0

Привет, Как получить доступ к аннотациям внутри этого метода serialize()? Смысл, могу ли я использовать отражение внутри этого метода? Не могли бы вы предоставить несколько указателей? – Niranjan

+0

Возможно, эта ссылка будет полезна. http://stackoverflow.com/questions/12921812/create-a-custom-jackson-annotation – Koitoer

0

Посмотрите на Contextual Handlers в документации. Это решение может быть более изящным (в зависимости от вашего варианта использования), поскольку вы можете зарегистрировать сериализатор в mapper и не нужно ссылаться на собственный сериализатор в вашем фактическом классе.

Смежные вопросы