從 http://xstream.codehaus.org/ 下載最新版本 1.3.1
使用時(shí)最小jar包只需要1個(gè) , 就是xsteam.jar
--------------------------------------------------
XStream xsteam = new XStream();
new的時(shí)候是有選擇性的 , 如果使用默認的話(huà) , 需要添加jar包xpp3_min-1.1.4c.jar , 否則在將xml文件轉換成對象時(shí),會(huì )出現異常
不適用默認的話(huà) ,不需要添加xpp3_min-1.1.4c.jar , 但是構造時(shí)需要添加參數
XStream xstream = new XStream(new DomDriver());
但是DomDriver的性能沒(méi)有xpp3_min-1.1.4c.jar的性能好,我嘗試1000次將一個(gè)xml文件轉換為T(mén)eacher對象,使用xpp3_min-1.1.4c將近節省一半時(shí)間。
--------------------------------------------------
基本數據類(lèi)型自動(dòng)綁定。不用設置。
--------------------------------------------------
復合類(lèi)型不使用alias綁定的話(huà),生成的xml文件復合類(lèi)型節點(diǎn)會(huì )有包名,看起來(lái)很不爽。 綁定的話(huà)就像這樣,
xstream.alias("student" , Student.class); 綁定student節點(diǎn) , 對應Student類(lèi)
xstream.alias("teacher" , Teacher.class); 綁定teacher節點(diǎn) , 對應Teacher類(lèi)
--------------------------------------------------
xstream.alias("animal" , Animal.class , Cat.class);
xstream.alias("animal" , Cat.class);
上面的第一種和第二種的效果是相同的
--------------------------------------------------
stream.aliasAttribute(Teacher.class, "age", "teacherAge") 是綁定屬性 , 對應的屬性在相應xml節點(diǎn)頭里,而不是在xml節點(diǎn)內部。
其中age是Teacher中的屬性 , teacherAge是xml文件中顯示的屬性就是teacherAge='XXX' .
--------------------------------------------------
stream.aliasField("suishu" , Cat.class , "age");
生成xml文件的時(shí)候Cat類(lèi)的age字段顯示的是suishu , 而不是age
---------------------------------------------------
stream.addImplicitCollection(Teacher.class , "students" , "stu" , Student.class);
定義Teacher中的students集合綁定Student類(lèi) , 顯示到xml文件中顯示的是stu
---------------------------------------------------
我覺(jué)得上面的就夠用了,畢竟只是一個(gè)工具 , 能辦事就行。
聯(lián)系客服