【问题标题】:Problem unmarshalling an attribute with name "class" with Xstream使用 Xstream 解组名为“class”的属性时出现问题
【发布时间】:2011-02-07 16:32:50
【问题描述】:

我有一个属性名为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 无法返回与问题无关的错误。 (例如,当我将属性名称“class”替换为“classs”时,它可以正常工作。)

我知道只要 XStream 无法从 XML 中分辨出来,就会使用“类”属性,并且 字段声明确切使用什么类型,但在这种情况下我不能修改 XML 输入,我必须处理属性“类”。

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

【问题讨论】:

    标签: xstream unmarshalling


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多