Java對象序列化和反序列化程序:Xson

jopen 10年前發布 | 20K 次閱讀 Xson Java開發

1. 項目介紹

Xson是一個Java對象序列化和反序列化程序。支持Java對象到字節數組的序列化,和從字節數組到Java對象的反序列化。

2. 支持的對象類型

  • 1.Java POJO對象
  • 2.基本類型:byte,short,int,long,float,double,boolean,char
  • 3.包裝類型:Byte,Short,Integer,Long,Float,Double,Boolean,Character
  • 4.String
  • 5.Collection
  • 6.Map
  • 7.Enum
  • 8.TimeZone
  • 9.Class
  • 10.BigDecimal
  • 11.BigInteger
  • 12.Class
  • 13.StringBuffer
  • 14.StringBuilder
  • 15.URI
  • 16.URL
  • 17.UUID
  • 18.Locale
  • 19.Currency
  • 20.TimeZone
  • 21.java.util.Date
  • 22.java.sql.Date
  • 23.java.sql.Time
  • 24.java.sql.Timestamp
  • 25.InetAddress
  • 26.Inet4Address
  • 27.Inet6Address
  • 28.InetSocketAddress

3. 在maven中如何配置xson依賴

<dependency>
    <groupId>com.github.xsonorg</groupId>
    <artifactId>xson-core</artifactId>
    <version>1.0.1</version>
</dependency>

4. 使用示例

1.使用xson進行對象到字節數組的序列化

User user = new User();
//set....
byte[] data = XSON.write(user);

2.使用xson進行字節數組到對象的反序列化

//byte[] data = XSON.write(user);
User user = XSON.parse(data);

5. 用戶擴展

1.在xson中添加用戶自定義的POJO類型(請在使用序列化的反序列化之前操作)

Map<String, String> prop = new HashMap<String, String>();
prop.put("org.xson.testmodel.XUser7", "x7");
prop.put("org.xson.testmodel.XUser6", "x6");
XsonSupport.addCustomAgreementType(prop);

2.用戶自定義Serializer

public class CustomerSerializer implements XsonWriter {

    @Override
    public void write(Object target, ByteModel model) {
        // Implementation code
    }
}

3.用戶自定義Deserializer

public class CustomerDeserializer implements XsonReader {
    @Override
    public Object read(ReaderModel model) {
        // Implementation code
        return null;
    }
}

4.在xson中添加用戶自定義的Serializer和Deserializer

XsonSupport.addCustomSupportType(XUser1.class, new CustomerSerializer(), new CustomerDeserializer());

項目主頁:http://www.baiduhome.net/lib/view/home/1406169614460

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!