兩分鐘教程
這是一個(gè)關(guān)于XStream快速的介紹。快速瀏覽一下你會(huì)馬上知道把一個(gè)對(duì)象轉(zhuǎn)換到XML或是轉(zhuǎn)換回來(lái)是多么的簡(jiǎn)單。你肯定會(huì)碰到下面的問(wèn)題。
創(chuàng)建能夠序列化的類(lèi)
這是一組簡(jiǎn)單的類(lèi)。XStream能把這些類(lèi)的實(shí)例轉(zhuǎn)換到XML或是轉(zhuǎn)換回來(lái)。
private String firstName;
private String lastName;
private PhoneNumber phonex;
private PhoneNumber fax;
//構(gòu)造函數(shù)或是其他方法
}
public class PhoneNumber {
private int code;
private int number;
//構(gòu)造函數(shù)或是其他方法
}
注:注意到這些都是私有變量。XStream不關(guān)心變量的作用域。不需要getter或是setter方法。并且,XStream不限定需要默認(rèn)的構(gòu)造函數(shù)。
實(shí)例化XStream
使用XStream,簡(jiǎn)單實(shí)例化XStream類(lèi):
你需要xstream-[version].jar and xpp3-[version].jar在classpath中。XPP3是一個(gè)非常快的XML拉式轉(zhuǎn)換器工具。如果你不想包含這個(gè)依賴(lài),你可以使用標(biāo)準(zhǔn)的JAXP DOM轉(zhuǎn)換器來(lái)代替。
注:這個(gè)類(lèi)的簡(jiǎn)單設(shè)計(jì)是為了實(shí)現(xiàn)通用操作的。為了實(shí)現(xiàn)更復(fù)雜的操作你可以選擇自己創(chuàng)建出不同方式。
現(xiàn)在,為了使用XStream來(lái)更精簡(jiǎn)的輸出XML,你可以為自定義的類(lèi)創(chuàng)建別名到XML的元素名的映射。這是使用XStream唯一需要的映射的,甚至這個(gè)都是可選的。
注:這是可選的一步。沒(méi)有這步XStream也可以很好的起作用,但是XML元素的名字就會(huì)包含每個(gè)類(lèi)的全稱(chēng)(包括包名),這將會(huì)使生成XML稍大。
序列號(hào)一個(gè)對(duì)象到XML
讓我們創(chuàng)建一個(gè)Person的實(shí)例并且填充它的變量域:
joe.setPhone(new PhoneNumber(123,"1234-456"));
joe.setFax(new PhoneNumber(123,"9999-999"));
現(xiàn)在轉(zhuǎn)換到XML,你要做的是簡(jiǎn)單的調(diào)用XStream:
生成的XML看上去像這樣:
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>
非常簡(jiǎn)單,像創(chuàng)建XML一樣。
從XML反序列化一個(gè)對(duì)象
從XML重新構(gòu)造一個(gè)對(duì)象:
XStream是多么的簡(jiǎn)單啊!
總結(jié):
使用xStream.alias(String elementName, Class cls)為任何一個(gè)自定義類(lèi)創(chuàng)建到類(lèi)到元素的別名;
使用xStream.toXML(Object obj)轉(zhuǎn)換對(duì)象到XML;
使用xStream.fromXML(String xml)轉(zhuǎn)換XML到對(duì)象;
(附原文地址:http://xstream.codehaus.org/tutorial.html)