我有这样的模型类,用于休眠@Entity@Table(name = "user", catalog = "userdb")@JsonIgnoreProperties(ignoreUnknown = true)public class User implements java.io.Serializable { private Integer userId; private String userName; private String emailId; private String encryptedPwd; private String createdBy; private String updatedBy; @Id @GeneratedValue(strategy = IDENTITY) @Column(name = "UserId", unique = true, nullable = false) public Integer getUserId() { return this.userId; } public void setUserId(Integer userId) { this.userId = userId; } @Column(name = "UserName", length = 100) public String getUserName() { return this.userName; } public void setUserName(String userName) { this.userName = userName; } @Column(name = "EmailId", nullable = false, length = 45) public String getEmailId() { return this.emailId; } public void setEmailId(String emailId) { this.emailId = emailId; } @Column(name = "EncryptedPwd", length = 100) public String getEncryptedPwd() { return this.encryptedPwd; } 在Spring MVC控制器中,使用DAO,我可以获取对象。并返回为JSON对象。@Controllerpublic class UserController { @Autowired private UserService userService; @RequestMapping(value = "/getUser/{userId}", method = RequestMethod.GET) @ResponseBody public User getUser(@PathVariable Integer userId) throws Exception { User user = userService.get(userId); user.setCreatedBy(null); user.setUpdatedBy(null); return user; }}视图部分是使用AngularJS完成的,因此它将获得像这样的JSON{ "userId" :2, "userName" : "john", "emailId" : "john@gmail.com", "encryptedPwd" : "Co7Fwd1fXYk=", "createdBy" : null, "updatedBy" : null}如果我不想设置加密的密码,则将该字段也设置为null。但是我不想这样,我不想将所有字段发送到客户端。如果我不希望发送密码,updatedby,createdby字段,则我的结果JSON应该像{ "userId" :2, "userName" : "john", "emailId" : "john@gmail.com"}我不想发送给其他数据库表的客户端的字段列表。因此,它将根据登录的用户进行更改。我该怎么做?
3 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
将@JsonIgnoreProperties("fieldname")注释添加到您的POJO。
或者,您可以@JsonIgnore在反序列化JSON时在要忽略的字段名称之前使用。例:
@JsonIgnore
@JsonProperty(value = "user_password")
public java.lang.String getUserPassword() {
return userPassword;
}
添加回答
举报
0/150
提交
取消