Джексон имеет функцию автоопределения, которая по умолчанию десериализует только все поля public и все сеттеры.Вот почему, если все поля являются закрытыми, ничто не будет десериализовано, если нет установщиков.
Вы можете использовать @JsonAutoDetect
для настройки этой функции автоопределения так, что она будет десериализовать даже полячастный.Таким образом, вам больше не нужно добавлять какие-либо сеттеры.
Чтобы настроить для каждого объекта:
@JsonAutoDetect(fieldVisibility = Visibility.ANY)
public class Person{
private int age;
private String name;
}
Чтобы настроить глобально, так что вам не нужно настраивать для каждогообъект:
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);