真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

詳解XML,Object,Json轉(zhuǎn)換與Xstream的使用-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)科技有限公司專業(yè)互聯(lián)網(wǎng)基礎(chǔ)服務(wù)商,為您提供樂(lè)山服務(wù)器托管高防服務(wù)器租用,成都IDC機(jī)房托管,成都主機(jī)托管等互聯(lián)網(wǎng)服務(wù)。

詳解XML,Object,Json轉(zhuǎn)換與Xstream的使用

1.Xstream的特點(diǎn):

這里直接引用Xstream官方的敘述:

  1. 靈活易用:在更高的層次上提供了簡(jiǎn)單、靈活、易用的統(tǒng)一接口,用戶無(wú)需了解項(xiàng)目的底層細(xì)節(jié)
  2. 無(wú)需映射:大多數(shù)對(duì)象都可以在無(wú)需映射的情況下進(jìn)行序列化與反序列化的操作
  3. 高速穩(wěn)定:設(shè)計(jì)時(shí)力求達(dá)到的最重要的指標(biāo)是解析速度快、占用內(nèi)存少,以使之能夠適用于大的對(duì)象處理或是對(duì)信息吞吐量要求高的系統(tǒng)
  4. 清晰易懂:項(xiàng)目采用reflection機(jī)制得到無(wú)冗余信息的XML文件。所生成 的XML文件較本地Java序列化產(chǎn)物更簡(jiǎn)潔,格式更清晰,更便于用戶閱讀
  5. 無(wú)需修改:完全序列化包括private和final類型在內(nèi)的全部?jī)?nèi)部字段。支 持非公有類和內(nèi)部類,類可以沒(méi)有缺省的構(gòu)造函數(shù)
  6. 易于集成:通過(guò)實(shí)現(xiàn)特定的接口,XStream可以直接與其它任何樹(shù)型結(jié)構(gòu)進(jìn)行序列化與反序 列化操作(而不僅僅是XML格式)
  7. 靈活轉(zhuǎn)換:轉(zhuǎn)換策略是可以定制的,允許用戶自定義特殊類型的對(duì)象如何以XML格式存儲(chǔ)。
  8. 錯(cuò)誤處理:由于XML資料不合法而造成異常時(shí),會(huì)提供詳細(xì)地診斷信息幫助處理問(wèn)題。

 2.初始化XStream類

說(shuō)Xstream簡(jiǎn)單是因?yàn)樗峁┙y(tǒng)一入口,主要類XStream用作所有項(xiàng)目的入口點(diǎn)。它將重要組件集成在一起,提供更簡(jiǎn)單易用的API操作。

我們可以使用以下的語(yǔ)句進(jìn)行初始化操作:

XStreamxstream = new XStream();

默認(rèn)情況下,XStream會(huì) 采用Xpp3庫(kù),XPP3是一種運(yùn)行效率非常高的XML全解析實(shí)現(xiàn)。如果你不想依靠Xpp3庫(kù)的話,也可以使用一個(gè)標(biāo)準(zhǔn)的JAXP DOM解析器,可以采用以下語(yǔ)句進(jìn)行初始化:

//不使用XPP3庫(kù)
XStreamxstream = new XStream(new DomDriver());

此xstream實(shí)例,為線程安全的,可以供多個(gè)線程進(jìn)行調(diào)用,共享使用。參考 com.thoughtworks.xstream.io.xml包,會(huì)發(fā)現(xiàn)系統(tǒng)提供了多種標(biāo)識(shí)解析器供我們選擇,包括,DomDriver、 JDomDriver、StaxDriver等等。

前面提到了Xstream提供了對(duì)Json的支持,是因?yàn)閄stream內(nèi)置了兩個(gè)Driver:

1.JsonHierarchicalStreamDriver:不依賴其他類庫(kù),只實(shí)現(xiàn) obj->JSON
2.JettisonMappedXmlDriver:依賴jettison類庫(kù),實(shí)現(xiàn) JSON->obj or obj->JSON

 兩種Driver在處理相同設(shè)置的Object時(shí)會(huì)得到不同的JSON串,JsonHierarchicalStreamDriver得到的串更簡(jiǎn)潔,確如官網(wǎng)所說(shuō)。

JsonHierarchicalStreamDriver有個(gè)小問(wèn)題——默認(rèn)輸出帶格式的JSON串,結(jié)構(gòu)中帶空格、換行,并且沒(méi)有提供修飾方式。

3.常用方法:

xStream.toXML(object):將對(duì)象轉(zhuǎn)換成XML、Json。
xStream.toXML(obj, outputStream):將對(duì)象轉(zhuǎn)換XML、Json并封裝成輸出流。
xStream.toXML(object, writer): 將對(duì)象轉(zhuǎn)換XML、Json并封成寫入流。
xStream.fromXML():將XML、Json轉(zhuǎn)換成對(duì)象,此方法接受File、InputStream、Reader、String、URL類型的參數(shù)。
xStream.alias("news", News.class):為指定類名創(chuàng)建別名。
xStream.useAttributeFor(News.class, "id"):將id設(shè)為 News的元素的屬性。
xStream.aliasField("other", BookShelf.class,"remark"):修改節(jié)點(diǎn)名稱,將BookShelf類中的remark節(jié)點(diǎn)名修改為other。
xStream.addImplicitCollection(BookShelf.class, "books"):去掉集體節(jié)點(diǎn)的父節(jié)點(diǎn)。
xStream.aliasAttribute("姓名", "name"):修改屬性的name,為姓名。

分享標(biāo)題:詳解XML,Object,Json轉(zhuǎn)換與Xstream的使用-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://weahome.cn/article/ggoei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部