Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSON对象映射器问题_Java_Jackson - Fatal编程技术网

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

当我将java对象转换为JSON时,会生成java对象和JSON属性

您能确认我在哪里犯了错误吗。

@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;
    }
}