2012-04-07 7 views
0

xstreamを使用してList to XMLをシリアライズしようとしています。私はxstream、リストをXMLにシリアライズする方法

List<Employee> 

やクラスの従業員のようなものになるだろうシリアライズする

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

オブジェクトのように出力構造を必要としています。

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、 "??") –

+0

xstream.alias( "Employees"、Users.class); 私はその時点でカスタムコンバータが必要だと思っています。 http://xstream.codehaus.org/converter-tutorial.html –

関連する問題