欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

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

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

我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、鎮(zhèn)賚ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的鎮(zhèn)賚網(wǎng)站制作公司

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

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

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

 2.初始化XStream類

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

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

XStreamxstream = new XStream();

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

//不使用XPP3庫
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:不依賴其他類庫,只實(shí)現(xiàn) obj->JSON
2.JettisonMappedXmlDriver:依賴jettison類庫,實(shí)現(xiàn) JSON->obj or obj->JSON

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

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

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,為姓名。

4.實(shí)例1:將對(duì)象轉(zhuǎn)換成XML  

/** 
  * 將對(duì)象轉(zhuǎn)換成Xml格式的字符串 
  * @param object 要轉(zhuǎn)換成Xml的對(duì)象 
  * @return String:Xml格式的字符串 
  */ 
  public static String convertObject2Xml(Object object) { 
   xStream=new XStream(); 
   xStream.alias("news", News.class);//修改元素名稱 
   xStream.useAttributeFor(News.class, "id");//將id設(shè)為News的元素的屬性 
   return xStream.toXML(object);    
  } 

5.實(shí)例2:將XML象轉(zhuǎn)換成對(duì)象

/** 
   * 將成Xml格式的字符串轉(zhuǎn)換成Java對(duì)象 
   * @param inputStream 要轉(zhuǎn)換成Java對(duì)象的inputStream 
   * @return String:Xml格式的字符串 
   */ 
  public static Object convertXml2Object(InputStream inputStream) { 
    xStream=new XStream(); 
    xStream.alias("news", News.class);//修改元素名稱 
    xStream.useAttributeFor(News.class, "id");//將id設(shè)為News的元素的屬性 
    return xStream.fromXML(inputStream);//此方法也可將xml轉(zhuǎn)換成map 
  } 

6.實(shí)例3:將對(duì)象轉(zhuǎn)換成Json

/** 
   * 將對(duì)象轉(zhuǎn)換成Json格式的字符串 
   * @param object 要轉(zhuǎn)換成Json的對(duì)象 
   * @return String:Json格式的字符串 
   */ 
  public static String convertObject2Json(Object object) {    
      xStream = new XStream(newJsonHierarchicalStreamDriver() { 
      publicHierarchicalStreamWriter createWriter(Writer out) { 
        //刪除根節(jié)點(diǎn) 
        return new JsonWriter(out, JsonWriter.DROP_ROOT_MODE); 
      } 
    });   
    return xStream.toXML(object);    
  } 

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

本文題目:詳解XML,Object,Json轉(zhuǎn)換與Xstream的使用
路徑分享:http://aaarwkj.com/article0/ipcoio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、關(guān)鍵詞優(yōu)化、Google、網(wǎng)站收錄、營銷型網(wǎng)站建設(shè)、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
亚洲精品尤物福利在线一区| 五十路六十路美熟人妻| 久久这里只有精品视频六| 免费精品99久久久国产| 日本精品人妻一区二区三区蜜桃| 亚洲七七久久精品中文国产| 日本福利一区二区三区| 日韩成人午夜视频在线| 91精品国产高清久久福利| 可以免费看的日韩黄色| 亚洲综合欧美日韩一区| 偷拍一区二区三区免费| 亚洲成人免费电影观看| 欧美性生活在线视频观看| 91这里只有精品在线观看| 国产在线视频不卡一区| 亚洲免费小视频在线观看| 亚洲日本熟妇在线视频| 中文字幕免费不卡一区| 我要看国产一级内射片| 日韩精品激情视频在线| 亚洲激情午夜福利视频| 人妻免费精品久久一区| 亚洲国产av国产av| 99精品国产高清一区二区三区| 欧美黄色一级在线免费观看| 天堂8在线最新版av| 美女黄色午夜福利网站| 2020中文字字幕在线不卡| 国产男女免费视频观看| 亚洲欧美极品一区色婷婷| 国产精品久久午夜伦鲁鲁| 小黄片免费在线播放观看| 亚洲欧美一级二级三级| 亚洲巨大黑人一区二区三区| 一级黄片国产精品久久| 日本亚洲欧洲一区二区| 日韩精品在线观看大全套 | 国产精品免费观看在线国产| 久久精品国产一区二区| 亚洲精品不卡在线观看|