如何使用注释在XStream中为属性添加别名?

时间:2017-03-06 11:36:12

标签: java spring xstream

我有以下代码

@XStreamAlias("Pa")
public class Pa {

    @XStreamAsAttribute
    private String ms;

    @XStreamAsAttribute
    private String co;

    @XStreamAsAttribute
    private String house;

    @XStreamAsAttribute
    private String street;

    // Getters and Setters
}

我希望在构造XML时,我的属性名称与变量名称不同。

我知道我可以使用以下注释对类进行操作

@XStreamAlias("ExampleClass")
private ExClass exClass;

上面的代码将生成一个名为

的标签
<ExampleClass/>

但是,我找不到任何更改属性名称的注释,而不创建单独的标记。

我想要的是以下内容:

<Pa milliseconds="" co =""/>

但是使用

@XStreamAlias("Milliseconds")
private String ms; 

正在创建具有给定名称的新标记。它不再保留标签的属性。

这样的注释是否存在?我只需要使用注释,而不是在运行时使用Java代码。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

您应该同时使用两种注释:

@XStreamAlias("Pa")
public class Pa {

    @XStreamAsAttribute
    @XStreamAlias("Milliseconds")
    String ms = "test";


    public static void main(String[] args) {
        XStream xStream = new XStream();
        xStream.ignoreUnknownElements();
        xStream.processAnnotations(Pa.class);

        String xml = xStream.toXML(new Pa());
        System.out.println(xml);
    }
}

输出:

<Pa Milliseconds="test"/>