我有一个从服务器发送到服务器的用户对象。当我发送用户对象时,我不想将散列密码发送到客户端。因此,我在password属性中添加了@JsonIgnore,但这也阻止了它被反序列化到密码中,这使得用户在没有密码时很难注册
我如何才能使@JsonIgnore只应用于序列化而不应用于反序列化?我使用的是SpringJSONView,因此我无法控制ObjectMapper
我尝试过的事情:
- 将
@JsonIgnore添加到属性 - 仅在getter方法上添加
@JsonIgnore
具体如何做到这一点取决于您使用的Jackson版本。这在1.9版前后发生了变化,在此之前,您可以通过向getter添加@JsonIgnore来实现这一点
你已经试过了:
仅在getter方法上添加@JsonIgnore
执行此操作,并为您的JSON添加特定的@JsonProperty注释”;密码";对象上密码的setter方法的字段名
Jackson的最新版本为JsonProperty添加了READ\u ONLY和WRITE\u ONLY注释参数。所以你也可以这样做:
@JsonProperty(access=JsonProperty.access.WRITE\u ONLY)
私有字符串密码;
可以找到文档此处