【问题标题】:Aliasing contents of a Set using XStream使用 XStream 对 Set 的内容进行别名处理
【发布时间】:2011-11-09 15:03:48
【问题描述】:

我在 XStream 中遇到了别名问题。

我有一组字符串项,我想像这样序列化为 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>

其中&lt;type&gt; 是自定义类的别名,aType 是类中的属性,即我使用这种方法获得了太多的级别。我将如何消除额外的级别或简单地将&lt;string&gt; 替换为自定义标签名称?

【问题讨论】:

    标签: java collections xstream


    【解决方案1】:

    您需要为 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>
    

    【讨论】:

    • 是否可以使用文件名代替别名中的“类型”和“类型”?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多