我正在尝试允许序列化我的对象,不包括某些字段。所以说我有一个班级:
class UserInfo {
String userName;
String password;
//getters & setters
}
我需要为某些目的序列化它,但不包括密码字段。所以我补充道:
@JsonIgnoreProperties({"password"}) //or
@JsonIgnoreProperties(value = {"amountDelta"}, allowGetters = true, allowSetters = true)
然后,我正试图通过@RequestBody
包装我的班级实例:
@RequestMapping(value = "test", method = POST, produces = "application/json")
public String testBodyWrapping(@RequestBody UserInfo userInfo) {
return userInfo.getPassword();
}
密码始终为null
! (我测试了这个删除@JsonIgnoreProperties
注释,并且它工作了)但是创建一个“手动”类的实例按预期工作并且password
字段没有出来。我做错了什么?
答案 0 :(得分:1)
当有人使用此端点时,它会发送json文本。您的方法将其反序列化为UserInfo类对象。在此过程中,反序列化器尝试设置UserInfo类的每个字段。首先,它尝试设置' userName'领域,没关系,之后它找到了密码'这个领域是可以忽视的,并没有设置。这就是全部。