@RequestBody接收实体类时,部分字段丢失的问题

2023年4月9日09:09:13

问题:

1.@RequestBody注解的实体类里,如果存在首字母为小写,第二个字母大写的字段时,此字段会传为null的bug。

private String tUser;

public String getTUser() {
	return tUser;
}
public void setTUser(String tUser) {
	this.tUser = tUser;
}

2.在IDEA中,布尔类型boolean/Boolean的isXXX变量,在自动生成getter和setter方法时,会去除is标识,如图所示。

private Boolean isSignUpAudit;

public Boolean getSignUpAudit() {
    return isSignUpAudit;
}

public void setSignUpAudit(Boolean signUpAudit) {
    isSignUpAudit = signUpAudit;
}

问题1解决方法:

 1、修改字段名

2、使用@JsonProperty注解,手动写get和set方法

@JsonProperty(value = "tUser")
private String tUser;

public String getTUser() {
	return tUser;
}

public void setTUser(String tUser) {
	this.tUser = tUser;
}

private String tUser;

@JsonProperty(value = "tUser")
public String getTUser() {
	return tUser;
}

@JsonProperty(value = "tUser")
public void setTUser(String tUser) {
	this.tUser = tUser;
}

3、重写get和set方法,第一个字母小写开头

private String tUser;

public String gettUser() {
    return tUser;
}

public void settUser(String tUser) {
    this.tUser = tUser;
}

问题2解决方法:

1、修改字段名

2、使用@JsonProperty注解,手动写get和set方法

@JsonProperty(value = "isSignUpAudit")
private Boolean isSignUpAudit;

public Boolean getSignUpAudit() {
    return isSignUpAudit;
}

public void setSignUpAudit(Boolean signUpAudit) {
    isSignUpAudit = signUpAudit;
}

private Boolean isSignUpAudit;

@JsonProperty(value = "isSignUpAudit")
public Boolean getSignUpAudit() {
    return isSignUpAudit;
}

@JsonProperty(value = "isSignUpAudit")
public void setSignUpAudit(Boolean signUpAudit) {
    isSignUpAudit = signUpAudit;
}

3、重写get和set方法,带上is开头

private Boolean isSignUpAudit;

public Boolean getIsSignUpAudit() {
	return isSignUpAudit;
}

public void setIsSignUpAudit(Boolean isSignUpAudit) {
	this.isSignUpAudit = isSignUpAudit;
}

  • 作者:木辰風
  • 原文链接:https://blog.csdn.net/qq_42277412/article/details/125553776
    更新时间:2023年4月9日09:09:13 ,共 1504 字。