在项目开发的过程中,后端实体类Model需要遵循驼峰命名规则,Controller请求却需要返回下划线格式的变量名,或者其他根据需求的变量名,这时可以使用jackson实现
- 引入依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
</dependency>
- 实体类加注解
可以加在属性上,对set和get方法同时生效,也可以加在set或者get方法上,分别影响接口传入值和返回值
package com.grandtech.aquacultureinsurance.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.commons.lang.StringUtils;
import java.sql.Timestamp;
/**
* @Description: 养殖户信息实体类
* @Author: han bo
* @CreateDate: 2019/6/19 17:51
* @UpdateUser:
* @UpdateDate: 2019/6/19 17:51
* @UpdateRemark:
* @Version: 1.0
*/
public class FarmerModel {
@JsonProperty("id_number")
private String idNumber;
private String name;
@JsonProperty("certificates_type")
private String certificatesType;
@JsonProperty("certificates_type_str")
private String certificatesTypeStr;
@JsonProperty("certificates_photo")
private String certificatesPhoto;
private String phone;
private String address;
private String bank;
@JsonProperty("bank_photo")
private String bankPhoto;
@JsonProperty("bank_number")
private String bankNumber;
@JsonIgnore
private Timestamp gmtCreate;
@JsonIgnore
private Timestamp gmtModified;
public String getIdNumber() {
return idNumber;
}
public void setIdNumber(String idNumber) {
this.idNumber = idNumber;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCertificatesType() {
return certificatesType;
}
public void setCertificatesType(String certificatesType) {
if(StringUtils.isNotBlank(certificatesType)){
this.certificatesType = certificatesType;
}else {
this.certificatesType = "0101";
}
}
public String getCertificatesTypeStr() {
return certificatesTypeStr;
}
public void setCertificatesTypeStr(String certificatesTypeStr) {
this.certificatesTypeStr = certificatesTypeStr;
}
public String getCertificatesPhoto() {
return certificatesPhoto;
}
public void setCertificatesPhoto(String certificatesPhoto) {
this.certificatesPhoto = certificatesPhoto;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getBank() {
return bank;
}
public void setBank(String bank) {
this.bank = bank;
}
public String getBankPhoto() {
return bankPhoto;
}
public void setBankPhoto(String bankPhoto) {
this.bankPhoto = bankPhoto;
}
public String getBankNumber() {
return bankNumber;
}
public void setBankNumber(String bankNumber) {
this.bankNumber = bankNumber;
}
public Timestamp getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(Timestamp gmtCreate) {
this.gmtCreate = gmtCreate;
}
public Timestamp getGmtModified() {
return gmtModified;
}
public void setGmtModified(Timestamp gmtModified) {
this.gmtModified = gmtModified;
}
}
然后正常的网络请求就可以看到
已经名称带下划线了,传参也可以用这个名字了