作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个Java bean ala
@XmlRootElement public class Bean {
@XmlElementWrapper(name = "ints") @XmlElement(name = "int")
int[] values;
// constructors, getters, setters, etc...
}
JAXB 正在生成类似 XML
<bean>
<ints>
<int>12</int>
<int>34</int>
<int>56</int>
</ints>
</bean>
我希望数组索引包含在 <int>
中标签作为数组位置传达了重要的值(value)。最好是像
<bean>
<ints>
<int id='0'>12</int>
<int id='1'>34</int>
<int id='2'>56</int>
</ints>
</bean>
有办法吗?
最佳答案
XML 元素的顺序确实携带信息。元素序列具有明确的顺序,因此添加数组索引将是多余的,除非您计划跳过索引或让它们乱序。
由于这种推理,JAXB 无法自动执行您要求的操作。如果您仍想这样做,则需要将您的值包装在一个类中,该类将索引值合并为 @XmlAttribute
值:
@XmlRootElement
public class Bean {
@XmlElementWrapper(name = "ints")
@XmlElement(name = "int")
MyInt[] values;
// constructors, getters, setters, etc...
}
public class MyInt {
@XmlAttribute(name="id")
int id;
@XmlValue
int value;
}
您需要确保正确填充 id
字段。
关于java - 如何将数组索引添加到 JAXB 生成的 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3066020/
我是一名优秀的程序员,十分优秀!