0

我在 java 中有我的用户类。当我想解组它时,我得到带有<UserIn>根元素的 xml,而当我想对它进行编组时,我应该<UserOut>成为 XML 根元素。如果我提供@XmlRootElement("UserIn")它不是动态的,它始终是 UserIn root。有没有办法在类上做动态根元素?谢谢。

4

1 回答 1

1

您可以创建两个扩展您的 User 类的类,然后根据您是否正在编组解编组来使用特定的子类。

例如,对于用户类:

public class User {

    @XmlElement
    private String value;

    public User() { }

    public User(String value) {
        this.value = value;
    }
}

您可以拥有 UserIn:

@XmlRootElement(name = "UserIn")
@XmlAccessorType(XmlAccessType.FIELD)
public class UserIn extends User {

    public UserIn() { }

    public UserIn(String value) {
        super(value);
    }
}

和用户输出:

@XmlRootElement(name = "UserOut")
@XmlAccessorType(XmlAccessType.FIELD)
public class UserOut extends User {

    public UserOut() { }

    public UserOut(String value) {
        super(value);
    }
}

在您需要的地方提供适当的类,您将使它与您希望的输入或输出一起工作。

于 2018-12-10T14:35:30.820 回答