我有一个包含枚举“ActionType”的父类。
@XmlRootElement(name="Action")
public class ActionDto {
[...] ActionType type;
}
以及一些扩展 ActionDto 并具有更多特殊属性(例如密码(LoginDto))的子类。
这是一个服务器-客户端连接。 我想将一些数据从客户端发送到服务器。所以我将其序列化(我使用 Jaxb) 并将其反序列化为 ActionDto 对象。
LoginDto-Object 的示例:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Action>
<type>LOGIN</type>
<password>Testpassword</password>
</Action>
如果我想将其反序列化为 ActionDto 对象,我会收到错误 - 我认为这是由密码属性引起的。我可以让 Jaxb-unmarshaller 忽略那些未知属性吗?
是否还有其他可能性将其直接解码到我的 LoginDto-Object(服务器仅接收一个 xml-String,我不知道特殊类型)?
最佳答案
默认情况下,JAXB 实现将忽略未知元素。如果抛出异常,则 Unmarshaller
上的默认 ValidationEventHandler
已被替换。您需要将敏感度较低的一项替换为敏感度较低的一项。
关于java - Jaxb - 忽略未知属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27711859/