一尘不染

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

java

我有一个发送到服务器或从服务器发送的用户对象。发送用户对象时,我不想将哈希密码发送给客户端。因此,我添加@JsonIgnore了password属性,但这也阻止了将其反序列化为密码,这使得在没有密码的情况下很难注册用户。

我怎样才能只@JsonIgnore应用序列化而不是反序列化?我使用的是Spring JSONView,因此对的控制不多ObjectMapper

我尝试过的事情:

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

阅读 563

收藏
2020-03-13

共1个答案

一尘不染

确切的操作方法取决于你使用的Jackson版本。围绕1.9版进行了更改,在此之前,你可以通过将其添加@JsonIgnore到getter中来实现。

你尝试过的:

仅在getter方法上添加@JsonIgnore

执行此操作,然后将@JsonPropertyJSON“密码”字段名称的特定注释添加到对象密码的setter方法中。

杰克逊(Jackson)的最新版本已为添加READ_ONLY和WRITE_ONLY注释参数JsonProperty。因此,你还可以执行以下操作:

@JsonProperty(access = Access.WRITE_ONLY)
private String password;
2020-03-13