1

我有一个节点,其属性名为class. 输入 XML 是:

<Job class="com.test.jobImplementation">
  <Priority>1</Priority>
  ......
</Job>

表示 XML 的 Java 类使用 Xstream 注释进行注释,如下所示:

@XStreamAlias("Job")
public static class Job {

    @XStreamAsAttribute
    @XStreamAlias("class")
    private String implementationClass;

    @XStreamAlias("Priority")
    private Integer priority

}

当我尝试反序列化 XML 时,xstream 无法返回与问题无关的错误。(例如,当我用“类”替换属性名称“类”时,它工作正常。)

我知道只要 XStream 无法从 XML 和字段声明中准确判断要使用什么类型,就会使用“类”属性,但在这种情况下,我无法修改 XML 输入,我必须处理属性“类” .

使用 Xstream 解组名为“class”的 XML 属性的任何解决方法?

4

1 回答 1

2

从 XStream 1.3.1 开始,您可以重新定义这些属性以允许将名称用于您自己的名称。

http://x-stream.github.io/faq.html#Serialization_system_attributes

于 2011-02-10T10:18:28.290 回答