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
。大概同样的错误在Service
class。 User
class 中的错误与您在 post.
的早期编辑中出现的错误相同
嗨,我正在尝试将一些 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
。大概同样的错误在Service
class。 User
class 中的错误与您在 post.