Xson:Javaオブジェクトのプログレッシブ化とアンチプログレッシブツール


もっと読む
1. Xson 紹介する XsonはJavaオブジェクトのプログレッシブとアンチプログレッシブプログラムです。Javaオブジェクトからバイト配列へのプログレッシブ化、およびバイト配列からJavaオブジェクトへの逆プログレッシブ化をサポートします。 住所:https://github.com/xsonorg/xson 2.アプリケーションシーン ネットワーク伝送やJavaシステム間通信などに利用できます。 3.サポートされているオブジェクトの種類 1.Java POJOオブジェクト 2.基本タイプ:byte、shot、int、long、float、double、book、char 3.包装タイプ:Byte、Shot、Integer、Long、Float、Double、Boolean、Charcter 4.String 5コレクション 6.Map 7.Enum 8.TimeZone 9.クラス 10.Big Decimal 11 Big Integer 12.クラス 13.StringBuffer 14.StringBuider 15.URI 16.URL 17 UID 18.Locale 19.Currency 20.TimeZone 21.1 java.util.Date 22.java.sql.Date 23.java.sql.Time 24.java.sql.Timestamp 25.InetAddress 26.Inet 4 Address 27.Inet 6 Address 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.ユーザー拡張
1.xsonにユーザオブジェクトタイプの説明とそのKey値を追加する 
Map prop = new HashMap();
prop.put("org.xson.testmodel.XUser7", "x7");
prop.put("org.xson.testmodel.XUser6", "x6");
XsonSupport.addCustomAgreementType(prop);
説明:xsonプログレッシブ化されたbyte[]には、POJOオブジェクトUserのように、Class情報を保存するために、アンチプログレッシブ操作に使用されます。 全類名は、例えばorg.xson.appi.Userで、XSON.write(user)が到着するbyte[]には「org.xson.appi.User」が保存されています。 なお、「org.xson.appi.User」は数バイトを占める必要があるため、byte[]の体積を減らすために、上記のような方法で提供することができる。 key値は「org.xson.appi.User」の代わりに体積を縮小する目標を達成する。 注意: 1.プログレッシブのアンチプログレッシブを使用する前に操作してください。 2.順序化の結果を両方の通信として使用する場合、双方のオブジェクトタイプとKey値の整合性を確保してください。 2.ユーザーがカスタマイズしたプログレッシブ 
 public class CustomerSerializer implements XsonWriter {
    @Override
    public void write(Object target, ByteModel model) {
         // Implementation code
    }
}
 3.ユーザーがカスタマイズしたアンチプログレッシブ 
public class CustomerDeserializer implements XsonReader {
    @Override
    public Object read(ReaderModel model) {
         // Implementation code
         return null;
    }
}
4.xsonにユーザーがカスタマイズしたプログレッシブとアンチプログレッシブを追加します。
XsonSupport.addCustomSupportType(XUser1.class, new CustomerSerializer(), new CustomerDeserializer());
 
 
興味がある友達がこのプロジェクトに参加して関心を持つことができることを望んで、同時にみんなの提案と助けを得ることをも望みます。メールアドレス:[email protected]
ありがとうございます。本プロジェクトの実現はFastjsonの原理と部分構造を参考にして、Fastjsonのオープンソースとその作者に感謝します。