Java JSON对象映射器问题
当我将java对象转换为JSON时,会生成java对象和JSON属性 您能确认我在哪里犯了错误吗。将Java JSON对象映射器问题,java,jackson,Java,Jackson,当我将java对象转换为JSON时,会生成java对象和JSON属性 您能确认我在哪里犯了错误吗。将@jsonautodect(getterVisibility=jsonautodect.Visibility.NONE)添加到您的类中: @JsonAutoDetect(getterVisibility= JsonAutoDetect.Visibility.NONE) @JsonInclude(JsonInclude.Include.NON_EMPTY) public class Falconi
@jsonautodect(getterVisibility=jsonautodect.Visibility.NONE)
添加到您的类中:
@JsonAutoDetect(getterVisibility= JsonAutoDetect.Visibility.NONE)
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class FalconidePersonalizationVO {
默认情况下,Jackson遵循javabean约定输出json属性。结果,它会找到您的getX
方法并输出xapiheader
属性
但是您还使用@JsonProperty
注释字段,因此还输出了另一个名为x-apiheader
的属性
禁用
getterX
检测方法将阻止jackson输出getter字段。*********************解决方案1*******************
同时用@JsonProperty注释getter/setter(现在注释字段不是必需的)
****************解决方案2*************** 遵循setter/getter命名约定。在正常命名约定中,字段名的第一个字母大写,并在前面加上set/get。但在这种情况下,因为第二个字符是大写的,所以第一个字符不是大写的。看
见@Hitobat问题是我需要xApiheader和xApiheaderCc。就像您看到我在示例JSON中将名称更改为x-apiheader-cc和x-apiheader一样。但是我得到了所有的xApiheader和xApiheaderCc(应该是x-apiheader-cc和x-apiheader),您可以对不想序列化的字段使用@JsonIgnore。请尝试删除getter,或者将JsonProperty注释移动到getter方法。
public class FalconidePersonalizationVO {
@JsonProperty("x-apiheader-cc")
private String xApiheaderCc;
@JsonProperty("x-apiheader")
private String xApiheader;
@JsonProperty("x-apiheader-cc")
public String getXApiheaderCc() {
return xApiheaderCc;
}
@JsonProperty("x-apiheader-cc")
public void setXApiheaderCc(String xApiheaderCc) {
this.xApiheaderCc = xApiheaderCc;
}
@JsonProperty("x-apiheader")
public String getXApiheader() {
return xApiheader;
}
@JsonProperty("x-apiheader")
public void setXApiheader(String xApiheader) {
this.xApiheader = xApiheader;
}
}
public class FalconidePersonalizationVO {
@JsonProperty("x-apiheader-cc")
private String xApiheaderCc;
@JsonProperty("x-apiheader")
private String xApiheader;
/*
* Setter / getter auto generated in eclipse
*/
// getXApiheaderCc -> getxApiheaderCc
public String getxApiheaderCc() {
return xApiheaderCc;
}
public void setxApiheaderCc(String xApiheaderCc) {
this.xApiheaderCc = xApiheaderCc;
}
public String getxApiheader() {
return xApiheader;
}
public void setxApiheader(String xApiheader) {
this.xApiheader = xApiheader;
}
}