java - 如何使用 JAXB 注释将 Java 列表转换为 XML?

标签 java xml jaxb

如何翻译 Java 列表

List<String> locations

转换为 XML 表示

...

<locations>
    <location>/bob/app/l1.xml</location>
    <location>/bob/app/l2.xml</location>
    <location>/bob/app/l3.xml</location>
</locations>

...

同时保存JSON兼容格式:

...

"locations": ["/bob/app/l1.xml","/bob/app/l2.xml"]

...    

我使用 Spring,我当前使用的 XML 格式是

...
<locations>/bob/app/l1.xml</locations>
<locations>/bob/app/l2.xml</locations>
...

我使用 JAXB 注释

@XmlElement(name = "locations")
public void setLocations(List<String> locations) {
    this.locations = locations;
}

UPD

我找到了解决方案。我只需要使用

@XmlElementWrapper(name = "locations")
@XmlElement(name = "location")
public List<String> getLocations() {
    return locations;
}

最佳答案

正如@renju 所说,你可以这样包装它..

@XmlRootElement(name="locations")
public class Locations {

    @XmlElement(name="location")
    private List<String> locations;

    //setter and getter
}

关于java - 如何使用 JAXB 注释将 Java 列表转换为 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35315579/

相关文章:

java - 如何使用 BCrypt (org.mindrot.BCrypt) 修复 "NoClassDefFoundError"?

c# - 计算 XML 文件中有多少个相等的字符串

java - 发现以元素 'property' 开头的无效内容

java - JAXB 是规范还是实现?

java - 从 php 中检索数据

java - 使用库导入Gradle项目

Java EE Eclipse 项目结构

c# - 反序列化具有字符串属性的 bool 元素

javax.xml.绑定(bind).JAXBException : class <ClassName> nor any of its super class is known to this context

java - 根据提供的条件获取 xml 中的特定对象