在序列化过程中仅使用@JsonIgnore,而不是反序列化

我有一个从服务器发送到服务器的用户对象。当我发送用户对象时,我不想将散列密码发送到客户端。因此,我在password属性中添加了@JsonIgnore,但这也阻止了它被反序列化到密码中,这使得用户在没有密码时很难注册

我如何才能使@JsonIgnore只应用于序列化而不应用于反序列化?我使用的是SpringJSONView,因此我无法控制ObjectMapper

我尝试过的事情:

  1. @JsonIgnore添加到属性
  2. 仅在getter方法上添加@JsonIgnore

具体如何做到这一点取决于您使用的Jackson版本。这在1.9版前后发生了变化,在此之前,您可以通过向getter添加@JsonIgnore来实现这一点

你已经试过了:

仅在getter方法上添加@JsonIgnore

执行此操作,为您的JSON添加特定的@JsonProperty注释”;密码"对象上密码的setter方法的字段名

Jackson的最新版本为JsonProperty添加了READ\u ONLYWRITE\u ONLY注释参数。所以你也可以这样做:

@JsonProperty(access=JsonProperty.access.WRITE\u ONLY)
私有字符串密码;

可以找到文档此处

发表评论