小编典典

仅在序列化期间使用@JsonIgnore,但不反序列化

json

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

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

我尝试过的事情:

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

阅读 218

收藏
2020-07-27

共1个答案

小编典典

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

您尝试过的:

仅在getter方法上添加@JsonIgnore

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

较新版本的Jackson已为添加READ_ONLYWRITE_ONLY注释参数JsonProperty。因此,您还可以执行以下操作:

@JsonProperty(access = Access.WRITE_ONLY)
private String password;

可以在这里找到文档。

2020-07-27