如何使用 XStream 反序列化属性和文本节点?
How do I de-serialize an attribute and a text node using XStream?
我想反序列化以下 XML 使用 XStream:
<root>
<node att="value">text</node>
</root>
转换为具有两个 String
类型字段的 Java 对象。我该怎么做?
我看过these questions,但我要做的其实是反向操作
正如您在几个序列化示例中所暗示的那样,ToAttributedValueConverter
是执行此操作的最直接方法。它允许您将 class 上的字段作为 XML 属性处理,其中一个被选为 XML 正文。
用这两个classes来接收数据:
@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);
我想反序列化以下 XML 使用 XStream:
<root>
<node att="value">text</node>
</root>
转换为具有两个 String
类型字段的 Java 对象。我该怎么做?
我看过these questions,但我要做的其实是反向操作
正如您在几个序列化示例中所暗示的那样,ToAttributedValueConverter
是执行此操作的最直接方法。它允许您将 class 上的字段作为 XML 属性处理,其中一个被选为 XML 正文。
用这两个classes来接收数据:
@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);