2011-11-09 27 views
1

我在XStream中有別名的問題。使用XStream別名的集合的內容

我有一組我想序列化到這樣的XML字符串項目:

<types> 
    <type>abc</type> 
    <type>def</type> 
</types> 

不過,我似乎無法找到解決這個的好辦法。我試過一個字符串列表,但後來我結束了

<types> 
    <string>abc</string> 
    <string>def</string> 
</types> 

我也試圖把字符串中的一個簡單的類,但後來我得到

<types> 
    <type> 
    <aType>abc</aType> 
    </type> 
</types> 

其中<type>是自定義類的別名,aType是類中的屬性,即使用這種方法我會得到一個級別太多。我將如何去消除額外的水平或簡單地用<string>替換自定義標籤名稱?

回答

3

您需要別名List和列表中的項目。

List<String> types = new ArrayList<String>(); 
types.add("abc"); 
types.add("def"); 

XStream xstream = new XStream(); 
xstream.alias("types", List.class); 
xstream.alias("type", String.class); 
System.out.println(xstream.toXML(types)); 

會導致

<types> 
    <type>abc</type> 
    <type>def</type> 
</types> 
+0

那是可以使用的,而不是在別名「類型」和「類」的申請名稱? – coffeMug