Haz todo lo posible por entender el código de forma correcta antes de aplicarlo a tu proyecto y si tquieres aportar algo puedes comentarlo.
Solución:
Exactamente cómo hacer esto depende de la versión de Jackson que esté usando. Esto cambió alrededor de la versión 1,9, antes de eso, puede hacer esto agregando @JsonIgnore
al captador.
Que has probado:
Agregue @JsonIgnore solo en el método getter
Hacer esto, y también agregar un específico @JsonProperty
anotación para su nombre de campo JSON “contraseña” al método de establecimiento para la contraseña en su objeto.
Versiones más recientes de Jackson han agregado READ_ONLY
y WRITE_ONLY
argumentos de anotación para JsonProperty
. Entonces también podrías hacer algo como:
@JsonProperty(access = Access.WRITE_ONLY)
private String password;
Los documentos se pueden encontrar aquí.
Para lograr esto, todo lo que necesitamos son dos anotaciones:
@JsonIgnore
@JsonProperty
Usar @JsonIgnore
en el miembro de la clase y su captador, y @JsonProperty
en su incubadora. Una ilustración de muestra ayudaría a hacer esto:
class User
// More fields here
@JsonIgnore
private String password;
@JsonIgnore
public String getPassword()
return password;
@JsonProperty
public void setPassword(final String password)
this.password = password;
Desde la versión 2.6: una forma más intuitiva es utilizar el com.fasterxml.jackson.annotation.JsonProperty
anotación en el campo:
@JsonProperty(access = Access.WRITE_ONLY)
private String myField;
Incluso si existe un captador, el valor del campo se excluye de la serialización.
JavaDoc dice:
/**
* Access setting that means that the property may only be written (set)
* for deserialization,
* but will not be read (get) on serialization, that is, the value of the property
* is not included in serialization.
*/
WRITE_ONLY
En caso de que lo necesite al revés, simplemente use Access.READ_ONLY
.
Te mostramos reseñas y calificaciones
Finalizando este artículo puedes encontrar las crónicas de otros sys admins, tú aún tienes la opción de dejar el tuyo si lo deseas.