Mam parę POJOs który wygląda tak:Jackson niestandardowy serializacji pod Spring 3 MVC
class Items {
List<Item> items;
public List<Item> getItems() {
return items;
}
...
}
class Item {
String name;
Date insertionDate;
...
}
Chcę móc pole Date
do serializacji w Item
stosując format niestandardowy (dodaj prefiks do data, np. "Data: xxx"), ale nie chcę tego robić zawsze (ponieważ jest używana przez innych użytkowników, którzy nie wymagają tego prefiksu), tylko w określonych przypadkach.
Gdybym opisywanie Item
„s getInsertionDate()
z @JsonSerialize(using = CustomDateSerializer.class)
mogę prawdopodobnie uczynić tę pracę, jednak, nie chcę tego robić, ponieważ nie zawsze chcą to pole do serializacji przy użyciu tej metody, tylko w konkretnym przypadku.
Tak idealnie, że byłoby to zrobić w moim kontrolera, który chce, aby dostosować serializacji:
@JsonSerialize(using = CustomDateSerializer.class)
public List<Item> getItems() {
....
}
gdzie CustomDateSerializer extends SerializerBase<Date>
i Jackson by zorientować się, że powinna ona szeregować każdą pozycję w List
użyciu domyślnego serializatora, a kiedy uderzy w obiekt Date
, powinien użyć mojego niestandardowego serializera. Oczywiście to nie działa, ponieważ nie jest to sposób, w jaki jest używane @JsonSerialize
, ale czy istnieje sposób, aby uczynić tę pracę inną niż owijanie Item
i używanie tego opakowania, gdy chcę niestandardową serializację? Czy myślę o tym w niewłaściwy sposób i jest inny sposób na zrobienie tego?
Należy pamiętać, że używam Spring MVC, więc nie wywołuję bezpośrednio serializacji.
Każda pomoc będzie mile widziane :)
jedno pytanie: jeśli utworzę oddzielne POJO zamiast listy, czy mogę je opisać w jakiś sposób, aby zastosować to formatowanie do wszystkich dat na liście, która jest przechowywana, czy też muszę osobno opisywać każdy obiekt Date? – TheZuck
Można opisywać właściwości listy i powinno to dotyczyć wszystkich dat (itp.) Zawartych. – StaxMan
Spróbuję, gdy przejdę do wersji 2.0+, obecnie na poziomie 1.9.7 i 2.0+ nie ma jeszcze standardowego repozytorium maven. Dzięki za pomoc! – TheZuck