Convert 组件介绍

-

       Convert 是一个比较独立的组件,仅依赖于util包。提供Java对象的序列化与反解析功能。支持JSON(JavaScript Object Notation)、BSON(Binary Stream Object Notation)两种格式化。 两种格式使用方式完全一样,其性能都大幅度超过其他JSON框架。

+

       Convert 是一个比较独立的组件,仅依赖于util包。提供Java对象的序列化与反解析功能。支持JSON(JavaScript Object Notation)、BSON(Binary Stream Object Notation)两种格式化。 两种格式使用方式完全一样,其性能都大幅度超过其他JSON框架。同时JSON内置于HTTP协议,BSON也是SNCP协议数据序列化的基础。

Convert 快速上手

      本介绍仅以JSON为例(BSON与JSON使用方式雷同)。其操作类主要是JsonConvert,配置类主要是JsonFactory、ConvertColumn。

@@ -155,6 +155,24 @@ BsonFactory.root().register(java.io.File.class, FileSimpleCoder.instance); +

BSON的协议格式

+

      BSON类似Java自带的Serializable, 其格式如下:
+             1). 基本数据类型: 直接转换成byte[]
+             2). SmallString(无特殊字符且长度小于256的字符串): length(1 byte) + byte[](utf8); 通常用于类名、字段名、枚举。
+             3). String: length(4 bytes) + byte[](utf8);
+             4). 数组: length(4 bytes) + byte[]...
+             5). Object:
+                   1. realclass (SmallString) (如果指定格式化的class与实体对象的class不一致才会有该值, 该值可以使用@ConvertEntity给其取个别名)
+                   2. 空字符串(SmallString)
+                   3. SIGN_OBJECTB 标记位,值固定为0xBB (short)
+                   4. 循环字段值:
+                         4.1 SIGN_HASNEXT 标记位,值固定为1 (byte)
+                         4.2 字段类型; 1-9为基本类型&字符串; 101-109为基本类型&字符串的数组; 127为Object
+                         4.3 字段名 (SmallString)
+                         4.4 字段的值Object
+                   5. SIGN_NONEXT 标记位,值固定为0 (byte)
+                   6. SIGN_OBJECTE 标记位,值固定为0xEE (short)
+