2012-04-07 57 views
0

我正在使用xstream並嘗試將List序列化爲XML。我需要的輸出結構像xstream,如何將列表序列化爲xml

<Employees> 
    <Employee></Employee> 
    <Employee></Employee> 
    <Employee></Employee> 
</Employees> 

序列化對象會是這樣的一個

List<Employee> 

或類員工。我試圖創建一個員工作爲

public class Employees extends ArrayList<Employee>(){} 

和各種其他方法,但不能讓它序列化,因爲我需要它。有沒有簡單的方法來做這樣的事情?

我的問題類似於XStream - Root as a collection of objects,但我想沒有包裝對象。

回答

1

您使用列表作爲根元素嗎?你可以爲課程添加別名。下面的代碼產生你正在尋找的輸出。

public static void main(String[] args) { 
    List<Employee> employees = new ArrayList<Employee>(); 
    employees.add(new Employee()); 
    employees.add(new Employee()); 
    employees.add(new Employee()); 
    XStream xstream = new XStream(); 
    xstream.alias("Employees", List.class); 
    System.out.println(xstream.toXML(employees)); 
} 
+0

也許我不明白如何正確使用它,但如果用戶擴展ArrayList,字段名稱會是什麼? xstream.addImplicitCollection(Users.class,「??」) – 2012-04-07 04:12:15

+0

xstream.alias(「Employees」,Users.class); 我相信你會需要一個自定義轉換器。 http://xstream.codehaus.org/converter-tutorial.html – 2012-04-08 15:32:47