2013-08-27 75 views
0

當使用傑克遜默認的作家,如下面:手動實施傑克遜系列化忽略註釋

protected static String getAsJson(Class clazz, Object object) throws IOException { 
    ObjectWriter ow = objectMapper.writerWithType(clazz); 
    return ow.writeValueAsString(object); 

註釋,比如下面被忽略:

@JsonDeserialize(using = LocalDateDeserializer.class) 
@JsonSerialize(using = LocalDateSerializer.class) 
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDate") 
private LocalDate date; 

我如何可以手動執行默認傑克遜系列化那用於彈簧@Responsebody(它可以與註釋一起使用)?

+1

您是否正在使用Mapper註冊自定義De/Serializer,如此處所述.. http://wiki.fasterxml.com/JacksonHowToCustomSerializers –

+0

忘記提問:忽略如何?什麼不起作用? – StaxMan

+0

@StaxMan the jsonserialize annotation,上面的鏈接固定了我,謝謝反正 – NimChimpsky

回答

1

傑克遜只能識別註解它知道:和我猜測,在你的榜樣,@JsonSerialize@JsonDeserialize是傑克遜的註釋(從傑克遜的數據綁定包),但@Type是不同的東西(由Spring MVC提供的,也許)。 這意味着別的東西會使用該註釋(Spring)。

可以擴展JacksonAnnotationIntrospector來識別其他註釋類型,所以這可能是你可以做的事情。有一種方法可以處理找到可以覆蓋的顯式類型覆蓋。