8
回答
jackson json 关于序列化与反序列化时json中字段名称的问题
华为云4核8G,高性能云服务器,免费试用   

Json如下

{

    "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

}

该怎么办


===============================================

参考stackoverflow

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。

    没有看源码。。。就这样猜的


举报
IncRediblE
发帖于4年前 8回/21K+阅
顶部