在项目开发的过程中,后端实体类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; } }
然后正常的网络请求就可以看到
已经名称带下划线了,传参也可以用这个名字了