我在XStream中遇到别名问题。
我有一组String项目,我想像这样序列化为XML:
<types>
<type>abc</type>
<type>def</type>
</types>
然而,我似乎找不到解决这个问题的好方法。我已经尝试了一个字符串列表,但后来我最终得到了
<types>
<string>abc</string>
<string>def</string>
</types>
我也尝试将String放在一个简单的类中,但后来我得到了
<types>
<type>
<aType>abc</aType>
</type>
</types>
其中<type>
是自定义类的别名,而aType是类中的属性,即使用此方法我得到一个级别太多。我如何去除额外级别或简单地用<string>
替换自定义标记名称?
答案 0 :(得分: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>