我有一个发送到服务器和从服务器发送的用户对象。当我发送用户对象时,我不想将散列密码发送给客户端。因此,我在密码属性上添加了 @JsonIgnore
,但这也阻止了它被反序列化为密码,这使得没有密码的用户很难注册。
我怎样才能只得到 @JsonIgnore
申请序列化而不申请反序列化?我正在使用 Spring JSONView,所以我对 ObjectMapper
没有太多的控制权。
我尝试过的事情:
- 添加
@JsonIgnore
到属性 - 仅在 getter 方法上添加
@JsonIgnore
原文由 chubbsondubs 发布,翻译遵循 CC BY-SA 4.0 许可协议
具体如何执行此操作取决于您使用的 Jackson 版本。这在 1.9 版左右发生了变化,在此之前,您可以通过将
@JsonIgnore
添加到 getter 来完成此操作。你试过的:
执行此操作, 并 为您的 JSON“密码”字段名称添加一个特定的
@JsonProperty
注释到对象密码的 setter 方法。Jackson 的更新版本添加了
READ_ONLY
和WRITE_ONLY
注释参数JsonProperty
。所以你也可以这样做:可以在 此处 找到文档。