我有一个从服务器发送到服务器的用户对象.当我发送用户对象时,我不想向客户端发送散列密码.因此,我在password属性上添加了@JsonIgnore
,但这也阻止了它被反序列化到密码中,这使得用户在没有密码时很难注册.
我怎么能只得到@JsonIgnore
来应用于序列化而不是反序列化?我使用的是Spring JSONView,所以我无法控制ObjectMapper
.
我试过的东西:
- 将
@JsonIgnore
添加到属性中 - 仅在getter方法上添加
@JsonIgnore
我有一个从服务器发送到服务器的用户对象.当我发送用户对象时,我不想向客户端发送散列密码.因此,我在password属性上添加了@JsonIgnore
,但这也阻止了它被反序列化到密码中,这使得用户在没有密码时很难注册.
我怎么能只得到@JsonIgnore
来应用于序列化而不是反序列化?我使用的是Spring JSONView,所以我无法控制ObjectMapper
.
我试过的东西:
@JsonIgnore
添加到属性中@JsonIgnore
具体如何操作取决于您使用的杰克逊版本.这在版本1.9左右发生了变化,在此之前,您可以通过在getter中添加@JsonIgnore
来实现这一点.
你已经试过了:
仅在getter方法上添加@JsonIgnore
为此,and also将JSON"password"字段名的特定@JsonProperty
注释添加到对象密码的setter方法中.
最近版本的Jackson为JsonProperty
添加了READ_ONLY
和WRITE_ONLY
个注释参数.所以你也可以这样做:
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;
文档可以在here页找到.