我有这样的模型类,用于hibernate
@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;
}
public void setEncryptedPwd(String encryptedPwd) {
this.encryptedPwd = encryptedPwd;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
@Column(name = "UpdatedBy", length = 100)
public String getUpdatedBy() {
return this.updatedBy;
}
public void setUpdatedBy(String updatedBy) {
this.updatedBy = updatedBy;
}
}
在Spring MVC控制器中,使用DAO,我可以获取对象。然后作为JSON对象返回。
@Controller
public 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"
}
我不想发送给其他数据库表的客户端的字段列表。因此,它将根据已登录的用户进行更改。我该如何做?
我希望你能回答我的问题。
将@JsonIgnoreProperties("fieldname")
注释添加到你的POJO。
或者,你可以@JsonIgnore
在反序列化JSON时在要忽略的字段名称之前使用。例:
@JsonIgnore
@JsonProperty(value = "user_password")
public java.lang.String getUserPassword() {
return userPassword;
}
在某些活动中,我不想要某些字段,所以我想避开那些字段,所以对这种混乱的情况有什么想法吗? 如有指导,将不胜感激。
本文向大家介绍Springmvc发送json数据转Java对象接收,包括了Springmvc发送json数据转Java对象接收的使用技巧和注意事项,需要的朋友参考一下 1、导包 基于maven 2、jsp代码 3、控制器代码 4、配置json转换器 如果不使用注解驱动<mvc:annotation-driven />,就需要给处理器适配器配置json转换器 在springmvc.xml配置文件中,
问题内容: 我正在使用Jackson JSON库将一些JSON对象转换为android应用程序上的POJO类。问题是,JSON对象可能会更改,并且在发布应用程序时会添加新字段,但是即使添加简单的String字段(即使可以安全地忽略),当前它也会中断。 有什么办法告诉杰克逊忽略新添加的字段?(例如,在POJO对象上不存在)?全局忽略将是巨大的。 问题答案: Jackson提供了可以在类级别使用的注释
问题内容: 我有一堂课,里面也有变量。有时我想忽略某些字段,有时在反序列化时不想忽略(也许也在序列化时)。在Jackson怎么办? 问题答案: 对于序列化,“ 过滤属性 ”博客条目应该会有所帮助。反序列化方面的支持较少,因为更常见的是要过滤掉所写的内容。 一种可能的方法是子类化,重写使方法(和/或字段)具有可忽略性的方法,以使用所需的任何逻辑。 如果您举了一个实际应用的例子,这也可能会有所帮助,即
我有以下课程- 我如何通过使用Jackson JSON API动态地排除字段序列化?