大佬好,关于XStream使用有点问题
如下是我的xml内容:
<p>哈哈<sub>123</sub>嘿嘿</p>
下面是读取并转换的方式
public static void main(String[] args) {
String xmlText = "<p>哈哈<sub>123</sub>嘿嘿</p>";
XStream xStream = new XStream();
XStream.setupDefaultSecurity(xStream);
xStream.autodetectAnnotations(Boolean.TRUE);
xStream.allowTypes(new Class[]{P.class, Sub.class});
xStream.processAnnotations(P.class);
xStream.processAnnotations(Sub.class);
System.out.println(xStream.fromXML(xmlText));
}
其中,在P.java中我是这么定义的:
@XStreamAlias("p")
@XStreamConverter(value = ToAttributedValueConverter.class, strings = {"text"})
@Data
public class P implements Serializable {
private static final long serialVersionUID = 1L;
private String text;
@XStreamAlias(value = "sub")
private Sub sub;
}
最后的结果如下:
P(text=哈哈, sub=null)
并没有按照我的预期生成:
P(text=哈哈嘿嘿, sub=123)
请问是我哪里配置的不对吗?谢谢
你解析的xml 两个标签不是并列的,不是兄弟关系,而是父子关系(嵌套关系),所以你可以尝试一下分别定义两个Java bean类,然后使用XStream逐级解析数据。
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题。
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~