JAXB XML对象序列化

时间:2015-03-22 17:58:38

标签: java xml serialization jaxb

我有这种XML结构:

<diagnosedSystemTypes>
   <string>system_1</string>   
   <string>system_2</string>
   <string>system_3</string>
   <string>system_4</string>
</diagnosedSystemTypes>

我想要做的是,将这些元素反序列化为DiagnosedSystemTypes列表。

这是查看我的DiagnosedSystemType类的方法。

@XmlRootElement( name = "string" )
public class DiagnosedSystemType {

    String name; 

    @XmlElement (name = "string")
    public void setName(String name){
        this.name = name;
    }

    public String getName(){
        return name;
    }
}

虽然这个诊断出的SystemTypes嵌套在Server标签中,但我将这些字段放在Server类中。

@XmlElementWrapper(name = "diagnosedSystemTypes")
@XmlElement (name = "string")
List<DiagnosedSystemType> diagnosedSystemTypes = null;

现在在反序列化期间,我得到了diagnosedSystemTypes的正确列表,但是里面的字符串元素是null&#39;它很奇怪,因为列表中的元素数量是可以的(4)。我有什么想法我做错了吗?

1 个答案:

答案 0 :(得分:1)

@XmlRootElement( name = "diagnosedSystemTypes" )
public class DiagnosedSystemType {

    @XmlElement (name = "string")
    List<String> names; 


    public List<String> getNames(){
        if (names == null) names = new ArrayList<>();
        return name;
    }
}

您的diagnosedSystemTypes包含字符串列表,而不仅仅是一个名称。