有时候我们会遇到一些这样的需求,json对象的属性名与java bean类的属性名不一致,由于我们知道Springboot中默认使用的是jackson的框架来对java对象与json对象进行序列化与反序列化,所以我们就需要知道jackson如何在序列化与反序列化过程中对属性进行重命名。
具体实例
假设我们有个叫User的java类,其中包含了id,name和job几个属性,但是我们在json对象序列化时,我们希望把id属性的值序列化成userId,此时我们就需要对属性进行重命名了。
json对象如下:
{
“userId”:1,
“name”: “zhangsan”,
“job”: “software engineer”
}
那java对象应该怎么写呢?
具体可见如下代码,在id属性上面添加@JsonProperty注解,同时设置序列化与反序列时使用userId将id的值传进去。这样我们就实现了对属性重命名的功能。
public class User {
@JsonProperty("userId")
private int id;
private String userName;
private String job;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
}