【发布时间】:2013-10-05 06:02:09
【问题描述】:
我从 REST 服务获取 XML,如下所示:
<entity>
<foo>
<count>1</count>
<date>1970-01-01</date>
<margin>78.67</margin>
</foo>
<bar>
<count>2</count>
<date>1450-09-17</date>
<margin>24.56</margin>
</bar>
<baz>
<count>11</count>
<date>1968-11-12</date>
<margin>98.76</margin>
</baz>
</entity>
我正在使用一个 Entity.java 类进行解析:
@XmlRootElement(name = "entity")
@XmlAccessorType(XmlAccessType.FIELD)
public class Entity implements Serializable {
@XmlElements({
@XmlElement(name="foo"),
@XmlElement(name="bar"),
@XmlElement(name="baz")
})
private List<EntityElement> entityElements;
....
使用 EntityElement 类,例如:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class EntityElement implements Serializable {
@XmlElement(required = true)
private int count
@XmlElement(required = true)
private String date;
@XmlElement(required = false)
private long margin;
....
这一切都像我预期的那样工作,我得到了一个 EntityElements 列表。我想做的是添加一个名称字段,并用找到的元素的名称填充它(foo、bar 或 baz),但我没有看到任何方法可以做到这一点。任何帮助或建议将不胜感激。
【问题讨论】:
-
为什么不在您的实体中简单地包含 3 个字段 foo、bar 和 baz?这样,您就会知道哪个为空,哪个不为空。
-
这应该会有所帮助:blog.bdoughan.com/2012/08/…
标签: java xml jaxb xml-binding