【发布时间】:2016-12-01 23:40:18
【问题描述】:
我正在使用XStream 将 XML 字符串转换为 Java 对象。
我有大量数据,但我在下面发布了最少的代码:
XStream xstream = new XStream(new StaxDriver());
xstream.alias("data", DetList.class);
xstream.alias("i", Details.class);
String s = new String("<data>\n"
+"\t<i Name='asia' type='continent' id='11'></i>\n"
+"\t<i Name='africa' type='continent' id='12'></i>\n"
+"\t<i Name='japan' type='country' id='13'></i>\n"
+"</data>");
System.out.println(s);
DetList data = (DetList) xstream.fromXML(s);
当我调试时,data 总是 null。
这是我的 DetList 类:
public class DetList {
private List<Details> detlist;
public List<Details> getDetlist() {
return detlist;
}
public void setDetlist(List<Details> detlist) {
this.detlist = detlist;
}
}
还有我的详细信息类:
public class Details {
private String Name;
private String type;
private String id;
//Getters and Setters are here.
}
data 为 null,应该包含 i 的列表。
我怎样才能让它工作?
【问题讨论】:
-
你有什么错误吗?
-
@GOXR3PLUS 不,没有错误。我确定我错过了什么,但不确定是什么。
-
你有
name变量的getter 和setter 方法吗?它也应该是name而不是Name -
我这样做了,没有任何影响。
-
看一下(x-stream.github.io/annotations-tutorial.html)如果你想使用
@attributes,你的问题有多个错误。一是它期待items而不是<i> </i>元素中的属性。