傑克遜自定義序列化我有一對夫婦的POJO,看起來像這樣:下彈簧3 MVC
class Items {
List<Item> items;
public List<Item> getItems() {
return items;
}
...
}
class Item {
String name;
Date insertionDate;
...
}
我希望能夠使用自定義格式序列化Item
的Date
場(添加一個前綴迄今爲止,像「日期:XXX」),但我不想這樣做,總是(因爲它是用來通過其他消費者不需要這個前綴),只有在特定情況下。
如果我註釋Item
的getInsertionDate()
與@JsonSerialize(using = CustomDateSerializer.class)
我也許可以做這項工作,但是,我不想這樣做,因爲我不總是想用這種方法來序列化這個領域,只在特定情況下。
因此理想情況下,我會做這在我的控制器,並希望自定義序列化:
@JsonSerialize(using = CustomDateSerializer.class)
public List<Item> getItems() {
....
}
其中CustomDateSerializer extends SerializerBase<Date>
和傑克遜會弄清楚,它應該在List
使用默認的序列序列的每個項目,當它碰到一個Date
對象時,它應該使用我的自定義序列化程序。當然,這也不行,因爲那不是如何@JsonSerialize
被使用,但有什麼辦法,使這項工作以外的其他用包裝材料包裹Item
和使用的包裝時,我想自定義序列?我在想這是錯誤的方式,還有另一種方法可以做到這一點?
請注意,我使用Spring MVC的,所以我不會直接調用序列化。
任何幫助,將不勝感激:)
一個問題:如果我創建一個單獨的POJO,而不是名單,我可以標註它在某種程度上這種格式應用於其持有列表中的所有日期,或者我需要分別標註每個Date對象? – TheZuck
您可以註釋列表屬性,它應該適用於所有包含的日期(等)。 – StaxMan
我來試試,當我移動到2.0+,目前1.9.7和2.0+是不是在標準Maven倉庫呢。感謝您的幫助! – TheZuck