JAXB。如何使用 JAXB 传递 XML 用内部 classes / 列表填充 POJO class?

JAXB. How to fill POJO class with inner classes / lists in it using JAXB pasrsing XML?

嗨,我正在尝试将一些 xml 编组到 java class 中,其中包含内部 classes 但有一个问题:内部 classes 没有't fill outer class - 它们是空值。

    <forms>
        <form mkgu-id="0" foreign-id="ticket-department-252-2017-12-12--0">
            <data>
                //some data
            </data>
            <rates>
                <rate indicator-id="2" value-id="45">45</rate>
                <rate indicator-id="13" value-id="49">49</rate>
                <rate indicator-id="221" value-id="55">55</rate>
                <rate indicator-id="42" value-id="60">60</rate>
                <rate indicator-id="53" value-id="65">65</rate>
            </rates>
        </form>
    </forms>

这里是汇率和汇率 classes:

@XmlRootElement(name = "rate")
public class Rate {

    @XmlAttribute(name = "indicator-id")
    private int indicatorId;

    @XmlAttribute(name = "value")
    private int value;

    @XmlElement(name = "rate")
    private int rate;

费率

@XmlRootElement(name = "rates")
public class Rates {
    @XmlElement
    private ArrayList<Rate> rates;

当我解析时,我得到了 class 作为字符串的实现,如下所示:

Forms{forms=[Form{mkguId=0, foreignId=ticket-department-252-2017-12-12--0, data=//一些数据, service=Service{id=1410073997, service= 'null'}, procedure=0, authority=Authority{id=1411364330, authority='null'}, date='2017-12-11 18:00:00', receivedDate='2017-12- 12 07:42:31', okato='53401373000'}, rates=利率{rates=null}}]}

有些字段没有填写正确。我缺少什么以及如何解决它?

在您的 class Rate 中,您需要将字段 rate 注释为 @XmlValue,而不是 @XmlElement。大概同样的错误在Serviceclass。 User class 中的错误与您在 post.

的早期编辑中出现的错误相同