当前位置: 首页>JAVA>正文

java編寫軟件工具,Xson:Java對象序列化和反序列化工具

java編寫軟件工具,Xson:Java對象序列化和反序列化工具

1.?Xson?介紹?
Xson是一個Java對象序列化和反序列化程序。支持Java對象到字節數組的序列化,和從字節數組到Java對象的反序列化。?
地址:https://github.com/xsonorg/xson?

2.應用場景?
可用于網絡傳輸和Java系統間通訊等。?

3.支持的對象類型?

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?

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.用戶擴展

java編寫軟件工具,1.在xson中添加用戶對象類型的描述和其Key值?

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);


說明:由于xson序列化后的byte[]中保存Class信息用以用于反序列化操作,比如一個POJO對象User,?
全類名比如叫:org.xson.api.User,那么XSON.write(user)到達的byte[]中則保存著"org.xson.api.User"的?
描述,但由于"org.xson.api.User"需要占用數個字節,為了減少byte[]體積,因此可使用上述方式通過給出?
一個key值來代替"org.xson.api.User",以實現縮小體積的目標。?

注意:?
1.請在使用序列化的反序列化之前操作?
2.如果序列化的結果用作雙方通訊,請確保使用雙方對象類型和Key值的一致性?

2.用戶自定義序列化器?

 public class CustomerSerializer implements XsonWriter {@Overridepublic void write(Object target, ByteModel model) {// Implementation code}
}

?3.用戶自定義反序列化器?

public class CustomerDeserializer implements XsonReader {@Overridepublic Object read(ReaderModel model) {// Implementation codereturn null;}
}

4.在xson中添加用戶自定義的序列化器和反序列化器

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

java實現序列化的方法??

?

希望感興趣的朋友能夠參與和關注此項目,同時也希望得到大家的建議和幫助。
通訊郵箱:xson_org@126.com

感謝:本項目的實現參考Fastjson的原理和部分結構,感謝Fastjson的開源和其作者。?

https://www.nshth.com/java/338891.html
>

相关文章:

  • java編寫軟件工具
  • java實現序列化的方法
  • 當事務對數據對象加了X鎖
  • 什么是對象序列化
  • 對象序列化可以保存
  • string字符串轉為數組
  • JAVA 序列化
  • JavaNIDE漢化版
  • pdf去水印軟件免費版,java批量去除pdf簽名,刪除簽名圖標
  • java多線程面試題及答案,JAVA8線程池THREADPOOLEXECUTOR底層原理及其源碼解析
  • java編程,java.lang.Class:是反射的源頭
  • java基礎面試題及答案,HTML CSS 基礎 面試題
  • java編寫軟件工具,Xson:Java對象序列化和反序列化工具
  • nlp預訓練模型,NLP-D62-nlp比賽D31刷題D15
  • kafka如何使用,kafka javax.management.InstanceAlreadyExistsException: kafka.consumer:
  • ssm畢設項目企業部門報銷管理g9d62(java+VUE+Mybatis+Maven+Mysql+sprnig)
  • java小游戲合集,java 煙花_Java 美麗的煙花
  • table列合并,poi操作excel之列合并
  • 找不到指定模塊怎么辦,在烏版圖安裝軟件包時候報錯:E:無法定位軟件包
  • 學云計算好就業嗎,對不起,云計算技術又走錯路了
  • 數電模電基礎知識總結,數電模電實驗課程
  • java的基礎知識,「JavaSE」-面向對象
  • 擴展內存,Java編程內存分析簡要
  • java多線程面試題及答案,【階段一】java之面向對象上
  • java 工作流框架,Activiti工作流使用之SpringBoot整合Activiti
  • 模型的應用形態包括哪些,模型設計準則
  • c語言程序設計培訓班南寧,南寧從零開始學習編程
  • 服務器,Spring Security oAuth2創建認證服務器模塊
  • Java jdk14.0.1安裝簡單步驟
  • 安裝ug12.0當前頁面的腳本發生錯誤,ug提示找不到html文件,[圖文教程] 以下文件無法加載,導致打開操作失敗: 使用當前搜索選項找不到文件,部件已卸載.
  • java執行cmd命令找不到指定文件,java編譯找不到文件_解決cmd運行java程序“找不到文件”提示的方案
  • 線上學畫畫的機構排名,拍樂云推出業內首個「線上美術教學音視頻方案」,打造極致互動體驗
  • day18-java
  • 取兩者中較小值函數,求兩個數中的較大值
  • java多線程面試題及答案,python中的多任務-多線程和多進程
  • 關于Arthas如何遠程監視Java程序
  • Java8 Stream流中的 collect() 方法,遠比你想象中的強大
  • 劉德華《天若有情》,天若有情