Jackson XML Mapper为列表

时间:2017-12-22 22:17:37

标签: java jaxb jackson

我有一个类Submission(如下所示),它有一个名为return的列表 返回类型。当我将对象Return元素反序列化两次时。 有没有办法让return元素只出现一次?

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ReturnType", propOrder = {
    "t619",
    "_return"
})
@XmlRootElement(name = "Submission")
public class Submission {

    @XmlElement(name = "Return", required = true)
    protected List<Return> _return;
}


@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ReturnChoiceType", propOrder = {
    "t4",
    "t4A",
    ...
})
public class Return {

    @XmlElement(name = "T4")
    protected T4ReturnType t4;

    ...
}

生成的XML

<Return> <!-- One return -->
    <Return> <!-- Another return -->
      <T4>
      </T4>
    </Return>
</Return>

1 个答案:

答案 0 :(得分:0)

因为Return元素包含ListReturn对象。

@XmlElement(name = "Return", required = true)
    protected List<Return> _return;

您需要将List<Return>更改为List<String>

 protected List<String> _return;

由于您尚未分享Return课程的完整详情,但我认为您可能需要更改某些内容。