参考内容:https://www.oschina.net/question/1446005_162675
我们有时候开发时,输出的json的字段名后java bean不一致的时候,就需要给json取一个别名了。
RestController ResponseBody 底层是用的jackson json来序列化与反序列化时json中字段名称。
son如下
{
"student_id": 1
}
model如下:
class Student {
@JsonProperty("student_id")
private int studentId;
public Student() {}
public int getStudentId() {
return studentId;
}
public void setStudentId(int studentId) {
this.studentId = studentId;
}
}
这时候使用jackson是可以将json转为此model,
问题是,我再把这个model转成json时,我想变成
{
"studentId": 1
}
该怎么办?
class Student {
private int studentId;
public Student() {}
@JsonIgnore
public int getStudentId() {
return studentId;
}
@JsonProperty("student_id")
public void setStudentId(int studentId) {
this.studentId = studentId;
}
@JsonProperty("studentId")
public int getJavaStudentId() {
return studentId;
}
}
大概就是类字段或该字段所在的get和set其中一个被@JsonProperty标注了,序列化反序列化都统一了。
当再写一个get方法时,若被@JsonProperty标注了,反序列化时,就会多出这个字段。
所以正宗的get上要加个@JsonIgnore。