实体类如下:
@Data
public class JsonDto {
private String cDay;
private String ceDay;
public JsonDto() {
}
public JsonDto(String cDay, String ceDay) {
this.cDay = cDay;
this.ceDay = ceDay;
}
}
public class JsonDto1 {
private String cDay;
private String ceDay;
public String getcDay() {
return cDay;
}
public void setcDay(String cDay) {
this.cDay = cDay;
}
public String getCeDay() {
return ceDay;
}
public void setCeDay(String ceDay) {
this.ceDay = ceDay;
}
public JsonDto1() {
}
public JsonDto1(String cDay, String ceDay) {
this.cDay = cDay;
this.ceDay = ceDay;
}
}
@Data
public class JsonDto2 {
@JsonProperty
private String cDay;
private String ceDay;
public JsonDto2() {
}
public JsonDto2(String cDay, String ceDay) {
this.cDay = cDay;
this.ceDay = ceDay;
}
}
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author Reese
*/
public class JsonDto3 {
@JsonProperty
private String cDay;
private String ceDay;
public String getcDay() {
return cDay;
}
public void setcDay(String cDay) {
this.cDay = cDay;
}
public String getCeDay() {
return ceDay;
}
public void setCeDay(String ceDay) {
this.ceDay = ceDay;
}
public JsonDto3() {
}
public JsonDto3(String cDay, String ceDay) {
this.cDay = cDay;
this.ceDay = ceDay;
}
}
public class JsonDto4 {
private String cDay;
private String ceDay;
public String getCDay() {
return cDay;
}
public void setCDay(String cDay) {
this.cDay = cDay;
}
public String getCeDay() {
return ceDay;
}
public void setCeDay(String ceDay) {
this.ceDay = ceDay;
}
public JsonDto4() {
}
public JsonDto4(String cDay, String ceDay) {
this.cDay = cDay;
this.ceDay = ceDay;
}
}
经过测试如下
@RestController
public class JsonDtoController {
/**
* 测试结果 {"ceDay":null,"cday":null}
* @return
*/
@GetMapping("/jd")
public JsonDto get(){
return new JsonDto();
}
/**
* {"cDay":null,"ceDay":null}
* @return
*/
@GetMapping("/jd1")
public JsonDto1 get1(){
return new JsonDto1();
}
/**
* {"cDay":null,"ceDay":null,"cday":null}
* 会多出来一个属性
* @return
*/
@GetMapping("/jd2")
public JsonDto2 get2(){
return new JsonDto2();
}
/**
* {"cDay":null,"ceDay":null}
* @return
*/
@GetMapping("/jd3")
public JsonDto3 get3(){
return new JsonDto3();
}
/**
* {"ceDay":"BB","cday":"aa"}
* @return
*/
@GetMapping("/jdc")
public JsonDto getc(){
return new JsonDto("aa","BB");
}
/**
* {"ceDay":"BB","cDay":"aa"}
* @return
*/
@GetMapping("/jd1c")
public JsonDto1 get1c(){
return new JsonDto1("aa","BB");
}
/**
* {"cDay":"aa","ceDay":"BB","cday":"aa"}
* @return
*/
@GetMapping("/jd2c")
public JsonDto2 get2c(){
return new JsonDto2("aa","BB");
}
/**
* {"ceDay":"BB","cDay":"aa"}
* @return
*/
@GetMapping("/jd3c")
public JsonDto3 get3c(){
return new JsonDto3("aa","BB");
}
/**
* {"ceDay":"BB","cDay":"aa"}
* @return
*/
@GetMapping("/jd4")
public JsonDto4 get4(){
return new JsonDto4("aa","BB");
}/**
* {"ceDay":"BB","cDay":"aa"}
* @return
*/
@GetMapping("/jd4c")
public JsonDto4 get4c(){
return new JsonDto4("aa","BB");
}
}
使用的 jackson版本 2.9.5
lombok 版本 是 1.16.20
spring boot 项目
为什么 JsonDto2 会多出来一个属性值,这到底是谁的问题????
原文:https://zhuanlan.zhihu.com/p/37439920