我有一个包含List字段的Java类。
public class Machine{
public int ID;
public String Name;
public String Status;
public String Environment;
public String Cluster;
public List<String> SupportedLocales;
}
下面是我想要解组的XML类的实例。
<?xml version="1.0" encoding="utf-8"?>
<Machine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ID>27</ID>
<Name>QA14ADMINOPM201</Name>
<Status>Decom</Status>
<Environment>QA14</Environment>
<Cluster>ADMINOPM</Cluster>
<SupportedLocales>
<SupportedLocale>NA</SupportedLocale>
<SupportedLocale>Global</SupportedLocale>
</SupportedLocales>
</Machine>
当我解组Xml时,生成的对象有一个空的SupportedLocales
列表,没有元素。有什么理由可能会发生这种情况或建议修复?所有其他字段正在正确解组。
答案 0 :(得分:4)
使用XmlElementWrapper
注释注释您的字段:
@XmlElementWrapper(name = "SupportedLocales")
@XmlElement(name = "SupportedLocale")
public List<String> SupportedLocales;
还尝试遵循使用以小写字母开头的变量(supportedLocales
而不是SupportedLocales
)的约定。这需要映射每个字段的XML元素名称,如下所示:
@XmlElement(name="ID")
public int id;
@XmlElement(name="Name")
public String name;
@XmlElement(name="Status")
public String status;
@XmlElement(name="Environment")
public String environment;
@XmlElement(name="Cluster")
public String cluster;
@XmlElementWrapper(name = "SupportedLocales")
@XmlElement(name = "SupportedLocale")
public List<String> supportedLocales;