Jackson xml:确实存在时没有字符串参数构造函数

问题描述

我正在尝试反序列化这个 xml:

<?xml version="1.0" encoding="UTF-8"?>
<responseDocument>
    <resultCode>OK</resultCode>
    <results>
        <result>
            <executionCode>ETC_ICI_000</executionCode>
            <executionDetails>El procés s'ha dut a terme correctament.</executionDetails>
        </result>
        <result>
            <executionCode>HC3_CIA_006</executionCode>
            <executionDetails>No s'ha obtingut informació de la UP: 01785</executionDetails>
        </result>
    </results>
</responseDocument>

我的豆子是:

主文档bean:

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
    "resultCode","results"
})
public class CercaIndexResponseDocument {

    @JsonProperty("resultCode")
    private String resultCode;
    @JsonProperty("results")
    private Results results;

    /**
     * No args constructor for use in serialization
     * 
     */
    public CercaIndexResponseDocument() {
    }

    public CercaIndexResponseDocument(String resultCode,Results results) {
        super();
        this.resultCode = resultCode;
        this.results = results;
    }

    @JsonProperty("resultCode")
    public String getResultCode() {
        return resultCode;
    }

    @JsonProperty("resultCode")
    public void setResultCode(String resultCode) {
        this.resultCode = resultCode;
    }

    @JsonProperty("results")
    public Results getResults() {
        return results;
    }

    @JsonProperty("results")
    public void setResults(Results results) {
        this.results = results;
    }
}

嵌套 bean(ResultsResult 类):

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
    "result"
})
public class Results {

    @JsonProperty("result")
    private List<Result> result = null;

    /**
     * No args constructor for use in serialization
     * 
     */
    public Results() {
    }

    /**
     * 
     * @param result
     */
    public Results(List<Result> result) {
        super();
        this.result = result;
    }

    @JsonProperty("result")
    public List<Result> getResult() {
        return result;
    }

    @JsonProperty("result")
    public void setResult(List<Result> result) {
        this.result = result;
    }
}
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
    "executionCode","executionDetails"
})
public class Result {

    @JsonProperty("executionCode")
    private String executionCode;
    @JsonProperty("executionDetails")
    private String executionDetails;

    /**
     * No args constructor for use in serialization
     * 
     */
    public Result() {
    }

    /**
     * 
     * @param executionCode
     * @param executionDetails
     */
    public Result(String executionCode,String executionDetails) {
        super();
        this.executionCode = executionCode;
        this.executionDetails = executionDetails;
    }

    @JsonProperty("executionCode")
    public String getExecutionCode() {
        return executionCode;
    }

    @JsonProperty("executionCode")
    public void setExecutionCode(String executionCode) {
        this.executionCode = executionCode;
    }

    @JsonProperty("executionDetails")
    public String getExecutionDetails() {
        return executionDetails;
    }

    @JsonProperty("executionDetails")
    public void setExecutionDetails(String executionDetails) {
        this.executionDetails = executionDetails;
    }

}

我收到此异常消息:

com.fasterxml.jackson.databind.exc.MismatchedInputException:无法构造 cat.gencat.catsalut.hes.visor.project.repository.hc3.cercarIndexCCCICV2.Result 的实例(尽管至少存在一个 Creator):没有从字符串值反序列化的字符串参数构造函数/工厂方法 ('ETC_ICI_000' ) 在 [来源: (StringReader);行:6,列:39](通过参考链:cat.gencat.catsalut.hes.visor.project.repository.hc3.cercarIndexCCCICV2.CercaIndexResponseDocument["results"]->cat.gencat.catsalut.hes.visor.project .repository.hc3.cercarIndexCCCICV2.Results["result"]->java.util.ArrayList[0])

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)