El comportamiento predeterminado de jackon parece usar tanto las propiedades (getters y setters) como los campos para serializar y deserializar a json.cómo especificar que jackson solo use campos: preferiblemente globalmente
Me gustaría utilizar los campos como la fuente canónica de configuración de serialización y, por lo tanto, no quiero que jackson mire propiedades en absoluto.
puedo hacer esto sobre una base de clase individual con la anotación:
@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
Pero yo no quiero tener que poner esto en cada clase única ...
¿Es posible configurar esto globalmente? ¿Como agregar algo al Object Mapper?
Tim dio una buena respuesta. Otra posibilidad es que si tienes una clase base común, puedes poner anotaciones de clase a esa; las anotaciones son heredadas por Jackson. – StaxMan
Creo que lo intenté, pero parece que tienes que decir a las subclases que usen lo que el caso base define ... –
No, a menos que la subclase anule la anotación de clase, las anotaciones de los padres son visibles como si fueran parte de una subclase. definición de clase (si no, esto sería un error). Esta no es necesariamente la forma en que JDK trata las anotaciones, pero Jackson implementa la herencia completa para las anotaciones (incluso para las anotaciones de métodos). – StaxMan