如何使用JAXB为带子元素的根元素设置文本值
解决方案
你需要将userId字段的注解替换为@XmlValue,该注解的作用是把字段值映射为当前类对应XML元素的文本内容,修改后的代码如下:
@XmlRootElement(name = "USER_ID") @XmlAccessorType(XmlAccessType.NONE) public class UserD { @XmlValue private String userId; @XmlElement(name = "Name") private ArrayList<Name> name; // 需保留无参构造方法、对应字段的getter/setter,保证JAXB序列化正常 }
之前的两种写法里,@XmlElement会额外生成同名子节点,@XmlAttribute会生成节点属性,都不符合你需要的根元素文本内容的需求,替换为@XmlValue后序列化即可得到你期望的输出结果。
内容的提问来源于stack exchange,提问作者Bhanu
相关产品推荐
相关产品推荐

