【问题标题】:XStream - different alias for marshal/unmarshal?XStream - 编组/解组的不同别名?
【发布时间】:2023-08-10 21:50:01
【问题描述】:

一些旧的 XML 仍然具有规范的类名。新的 XML 具有简单的名称。

我希望能够同时阅读这两种格式,但要确保在编组时获得简单的名称。我尝试过使用...

xstream.alias("package.name.className", Clazz.class);
xstream.alias("className", Clazz.class);

解组工作正常,但编组是混合的。对于某些类,我得到简单的名称,而另一些则是规范的。

知道如何使用相同的 xstream 实例来实现这一点吗?

【问题讨论】:

    标签: java xstream


    【解决方案1】:

    最好的方法是为您的班级编写一个自定义转换器。

    另一种方法是让一个 xstream 实例使用别名进行解组,另一个 xstream 实例仅使用您想要的别名进行编组。

    【讨论】:

    • 我已经有 2 个实例,因此我对使用 1 个实例有疑问。我不喜欢自定义转换器的前景,太麻烦了!我希望有某种方法可以让别名知道顺序。