使用JAXB实现XML转Java类时,无法读取标签文本值的问题求助
解决JAXB无法读取XML标签文本值的问题
你漏了映射XML元素文本内容的配置——你的Java类里没有对应<element>标签内部"220"这个文本值的字段,JAXB自然不知道该把这部分内容存到哪里。
解决方法很简单,在类中新增一个字段,并用@XmlValue注解标记它,这个注解专门用来绑定XML元素的文本内容:
@Data @XmlAccessorType(XmlAccessType.FIELD) public class element { @XmlAttribute(name = "Id") private String Id; @XmlAttribute(name = "Composite") private String Composite; // 新增字段,映射XML标签的文本值 @XmlValue private String value; private List<subelement> subelement; }
修改后重新转换,生成的Java对象对应的JSON就会包含文本值:
{ "subelement": null, "id": "BGM01", "composite": null, "value": "220" }
注意事项
- 一个Java类只能有一个字段标记
@XmlValue - 如果类中同时存在
@XmlValue和子元素(比如你的subelement集合),子元素必须是集合类型,这一点你的代码已经符合要求,不需要调整
内容的提问来源于stack exchange,提问作者iwritecomeinmymind
相关产品推荐
相关产品推荐

