Domyślne działanie jackonu wydaje się używać obu właściwości (pobierających i ustawiających) i pól do serializowania i deserializacji do json.jak określić jackson, aby używać tylko pól - najlepiej globalnie
Chciałbym użyć pól jako kanonicznego źródła konfiguracji serializacji, a tym samym nie chcę, aby jackson w ogóle patrzył na właściwości.
mogę to zrobić na zasadzie indywidualnej klasy z adnotacją:
@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
Ale ja nie chcę umieścić to na każdej klasie ...
Czy jest możliwe skonfigurować to globalnie? Jak dodać niektóre do Object Mapper?
Tim dał dobrą odpowiedź. Inną możliwością jest to, że jeśli masz wspólną klasę podstawową, możesz umieścić adnotacje klas do tego; adnotacje są dziedziczone przez Jacksona. – StaxMan
Myślę, że próbowałem, ale wydaje się, że musisz powiedzieć subklasom, aby użyć tego, co definiuje podstawowy kod ... –
Nie, chyba że podklasa zastępuje adnotację klasy, adnotacje rodziców są widoczne tak, jakby były częścią podrzędnych definicja klasy (jeśli nie, byłby to błąd). Niekoniecznie jest to sposób, w jaki JDK radzi sobie z adnotacjami, ale Jackson stosuje pełne dziedziczenie dla adnotacji (nawet dla adnotacji metod). – StaxMan