我想使用 XStream 反序列化以下XML:
<root>
<node att="value">text</node>
</root>
到具有两个String
类型字段的 Java 对象中。我该怎么做?
答案 0 :(得分:1)
正如您在几个序列化示例中所暗示的那样,ToAttributedValueConverter
是最直接的方法。它允许您将类中的字段作为XML属性来处理,而其中的一个字段则作为XML主体来选择。
通过这两个类来接收数据:
@XStreamAlias("root")
public class Root {
private Node node;
}
@XStreamConverter(value = ToAttributedValueConverter.class, strings = {
"text" })
public class Node {
private String att;
private String text;
}
这可以正确反序列化:
XStream xstream = new XStream();
xstream.processAnnotations(Root.class);
Root root = (Root) xstream.fromXML(xml);