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。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值