Wpis z mikrobloga

Jest sobie klasa Rodzina

class Rodzina {
private Osoba ojciec;
private Osoba matka;
private Osoba dziecko;

Klasa Osoba ma pola: imie, nazwisko, address

I teraz musze skonfigurowac #objectmapper tak, aby serializowal mi pole imie - ale tylko dla ojca i np. nazwisko tylko dla dziecka itd.

Do tej pory miałem BeanSerializerModifier który mówił mi jakie pola serializuje, ale właśnie tu jest problem, bo mogę tylko powiedzieć, ze chce pole imie z klasy Osoba. Co powoduje, ze imie jest serializowane wszędzie.

Ktoś ma pomysł jak to ogarnąć?

* Oczywiście Rodzina/Osoba to przykładowe dane.

#java #serializacja #jackson
  • 5
@UnitrA: Hmmm...No nie koniecznie, jezeli ojciec/matka maja tylko imie i nazwisko to wystarczy abstrakcyjny byt "Osoba".
Ale tutaj faktycznie, jak sobie rozszerze klasy - nawet bez nowych pol, to bede mogl pracyzyjnie powiedziec co w danej klasie ma byc serializowane... Dzieki, to może być taki dobry działąjący "hack" :).
@plastik: Ale to zapewnia serializacje do "plaskiego" json - tego nie chce.
@lemon_tea: no to chciałbym robić jako ostateczność (to nie jest tylko jedna klasa u mnie)

Moj use case jet taki, ze user na UI wybiera export danych i chce wyeksportowac: nazwisko ojca, imie matki, imie dziecka. A wszystko to jest takim samym obiektem.

Podejscie ktora opisalem wyżej ("hack") troche psuje mi model JPA., ale znalazlem na stacku cos