Xstream

XStreamJava類庫,用來將對象序列化XMLJSON)或反序列化為對象。XStream是自由軟體,可以在BSD許可證的許可下分發。

基本介紹

  • 中文名:Xstream
  • 性質Java類庫
  • 目的:處理XML檔案序列化
  • 領域:計算機
簡介,XStream庫,對象圖的序列化,

簡介

Xstream 使用最新的圖形卡技術來大幅度提升計算速度,速度甚至可以和MPI分散式計算相媲美。
另外,Xstream是一種OXMapping 技術,是用來處理XML檔案序列化的框架在將javaBean序列化,或將XML檔案反序列化的時候,不需要其它輔助類和映射檔案,使得XML序列化不再繁瑣。

XStream庫

XStream在運行時使用Java反射機制對要進行序列化的對象樹的結構進行探索,並不需要對對象作出修改。XStream可以序列化內部欄位,包括私private和final欄位,並且支持非公開類以及內部類。
在預設情況下,XStream不需要配置映射關係,對象和欄位將映射為同名XML元素。但是當對象和欄位名與XML中的元素名不同時,XStream支持指定別名。XStream支持以方法調用的方式,或是Java 標註的方式指定別名。
XStream在進行數據類型轉換時,使用系統預設的類型轉換器。同時,也支持用戶自定義的類型轉換器。

對象圖的序列化

當序列化一個對象時,XStream將序列化整個對象圖。如果在對象圖中遇到重複引用,在生成的XML中將保留這些引用。以下面的CD類為例:
package com.thoughtworks.xstream;public class Cd {    private String id;    private Cd bonusCd;    Cd(String id, Cd bonusCd) {        this.id = id;        this.bonusCd = bonusCd;    }    Cd(String id) {        this.id = id;    }    public String getId() {        return id;    }    public Cd getBonusCd() {        return bonusCd;    }}
並且向列表添加一些Cd對象:
Cd bj = new Cd("basement_jaxx_singles");Cd mr = new Cd("maria rita");        List order = new ArrayList();                 order.add(mr);// 兩次添加同一個CD(兩個引用指向同一個對象)                 order.add(bj);order.add(bj);// 添加自己 (循環)                 order.add(order);                 XStream xstream = new XStream();                 xstream.alias("cd", Cd.class);                 System.out.println(xstream.toXML(order));
如果在XStream的預設的相對引用模式下執行以上程式,程式將生成下面的XML:
<list>  <cd>    <id>maria rita</id>  </cd>  <cd>    <id>basement_jaxx_singles</id>  </cd>  <cd reference="../cd[2]"/>  <list reference=".."/></list>

相關詞條

熱門詞條

聯絡我們