spring boot RestController ResponseBody 输出json字段重命名

参考内容: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。

你可能感兴趣的:(java)