本发明专利技术提供了一种对象序列化方法、对象反序列方法、装置及系统,预先为对象中各个字段设置类型值,所述对象序列化方法包括对所述各个字段的类型值进行二进制转换,得到所述各个字段的类型值的二进制序列,并对所述各个字段的标签值进行二进制转换,得到所述各个字段的标签值的二进制序列;合并所述各个字段的标签值的二进制序列和类型值的二进制序列,得到所述各个字段的键值的二进制序列;对所述各个字段的字段名称的值信息进行二进制转换,得到所述各个字段的值信息的二进制序列;连接所述各个字段的键值的二进制序列和值信息的二进制序列,得到所述各个字段的二进制序列;对所述各个字段的二进制序列进行连接,得到所述对象的二进制序列。
【技术实现步骤摘要】
本申请涉及计算机
,特别涉及一种对象序列化方法、对象反序列化方法、装置及系统。
技术介绍
序列化技术广泛应用于安全云服务平台,主要实现将对象串行化为二进制字节流,既而将该字节流保存至存储设备(如磁盘)中或将该字节流传输。该对象可以为数据对象、类对象等待序列化对象。目前,主流的序列化技术包括可扩展标记语言XML (Extensible Markup Language)技术和JSON (JavaScript Object Notation)技术等,其序列化过程为将对象的各个属性的名称及其属性值分别进行整体串行化,再将串行化后的各个字符串进行连接得到二进制字节流。而反序列化过程与上述序列化过程相反。上述序列化过程中由于其对对象的各个属性的消息结构复杂,导致其串行化时间较长,使得串行化效率较低,同时上述序列化过程对对象各个属性值进行整体串行化后得到的字节流数据量较大,占用较大的存储空间或传输带宽,严重影响数据存储或传输效率。
技术实现思路
本申请所要解决的技术问题是提供一种对象序列化方法、对象反序列化方法、装置及系统,用以解决现有序列化技术由于其序列化数据对象的各个属性的消息结构复杂,导致其串行化时间较长,使得串行化效率较低的技术问题,以及用以解决现有序列化技术对数据对象各个属性值进行整体串行化后得到的字节流数据量较大,占用较大的存储空间或传输带宽,严重影响数据存储或传输效率的技术问题。为解决上述技术问题,本专利技术提供了一种对象序列化方法,预先为对象中各个字段设置类型值,所述类型值与其所属字段的字段类型相对应,所述方法包括对所述各个字段的类型值进行二进制转换,得到所述各个字段的类型值的二进制序列,并对所述各个字段的标签值进行二进制转换,得到所述各个字段的标签值的二进制序列;合并所述各个字段的标签值的二进制序列和类型值的二进制序列,得到所述各个字段的键值的二进制序列;对所述各个字段的字段名称的值信息进行二进制转换,得到所述各个字段的值信息的二进制序列;连接所述各个字段的键值的二进制序列和值信息的二进制序列,得到所述各个字段的二进制序列;对所述各个字段的二进制序列进行连接,得到所述对象的二进制序列。上述对象序列化方法,优选地,所述合并所述各个字段的标签值的二进制序列和类型值的二进制序列,得到所述各个字段的键值的二进制序列具体为对所述各个字段的标签值的二进制序列进行左移三位;对所述各个字段的类型值的二进制序列与左移三位的标签值的二进制序列进行相加,得到所述各个字段的键值的二进制序列。上述对象序列化方法,优选地,所述对所述各个字段的字段名称的值信息进行二进制转换,得到所述各个字段的值信息的二进制序列具体为依据所述各个字段的字段类型分别确定与所述各个字段相对应的值信息转换算法;其中,所述值信息转换算法包括无符号整型字段转换算法、有符号整型字段转换算法、不可变数字字段转换算法、字符串字段转换算法或嵌套消息字段转换算法; 对所述各个字段的字段名称的值信息,采用与其所属字段的值信息转换算法进行二进制转换,得到所述各个字段的值信息的二进制序列。上述对象序列化方法,优选地,所述对所述各个字段的二进制序列进行连接,得到所述对象的二进制序列具体为将所述各个字段的二进制序列按照其所属字段的标签值的自小到大的顺序进行连接,得到所述对象的二进制序列。本申请还提供了一种对象反序列化方法,包括获取对象的二进制序列中所述各个字段的键值的二进制序列;对所述各个字段的键值的二进制序列进行拆分,得到所述各个字段的标签值的二进制序列和类型值的二进制序列;对所述各个字段的标签值的二进制序列进行转换,得到所述各个字段的标签值,并对所述各个字段的类型值的二进制序列进行转换,得到所述各个字段的类型值;依据所述各个字段的标签值及类型值,确定所述各个字段的字段类型;依据所述各个字段的字段类型,分别获取其所属字段的值信息的二进制序列,并将所述各个字段的值信息的二进制序列进行转换,得到对象中各个字段的字段名称的值信肩、O上述对象反序列化方法,优选地,所述依据所述各个字段的标签值及类型值,确定所述各个字段的字段类型具体为依据所述各个字段的类型值,分别确定其所属字段的初始字段类型范围;采用所述各个字段的标签值,分别对其所属字段的初始字段类型范围进行校验,确定各个字段的字段类型。上述对象反序列化方法,优选地,所述依据所述各个字段的字段类型,分别获取其所属字段的值信息的二进制序列具体为依据所述各个字段的字段类型,分别确定其所属字段的值信息的二进制序列长度;依据所述各个字段的值信息的二进制序列长度,分别获取与其所属字段的值信息的二进制序列。本申请还提供了一种对象序列化装置,预先为对象中各个字段设置类型值,所述类型值与其所属字段的字段类型相对应,所述装置包括第一转换单元,用于对所述各个字段的类型值进行二进制转换,得到所述各个字段的类型值的二进制序列,并对所述各个字段的标签值进行二进制转换,得到所述各个字段的标签值的二进制序列;第一连接单元,用于合并所述各个字段的标签值的二进制序列和类型值的二进制序列,得到所述各个字段的键值的二进制序列;第二转换单元,用于对所述各个字段的字段名称的值信息进行二进制转换,得到所述各个字段的值信息的二进制序列;第二连接单元,用于连接所述各个字段的键值的二进制序列和值信息的二进制序列,得到所述各个字段的二进制序列;第三连接单元,用于对所述各个字段的二进制序列进行连接,得到所述对象的二进制序列。 上述对象序列化装置,优选地,所述第一连接单元包括序列移动子单元和序列相加子单元,其中所述序列移动子单元,用于对所述各个字段的标签值的二进制序列进行左移三位;所述序列相加子单元,用于对所述各个字段的类型值的二进制序列与左移三位的标签值的二进制序列进行相加,得到所述各个字段的键值的二进制序列。上述对象序列化装置,优选地,所述第二转换单元包括算法确定子单元和序列转换子单元,其中所述算法确定子单元,用于依据所述各个字段的字段类型分别确定与所述各个字段相对应的值信息转换算法;其中,所述值信息转换算法包括无符号整型字段转换算法、有符号整型字段转换算法、不可变数字字段转换算法、字符串字段转换算法或嵌套消息字段转换算法;所述序列转换子单元,用于对所述各个字段的字段名称的值信息,采用与其所属字段的值信息转换算法进行二进制转换,得到所述各个字段的值信息的二进制序列。上述对象序列化装置,优选地所述第三连接单元,具体用于将所述各个字段的二进制序列按照其所属字段的标签值的自小到大的顺序进行连接,得到所述对象的二进制序列。本申请还提供了一种对象反序列化装置,所述装置包括序列获取单元,用于获取对象的二进制序列中所述各个字段的键值的二进制序列,并对所述各个字段的键值的二进制序列进行拆分,得到所述各个字段的标签值的二进制序列和类型值的二进制序列;第一反转换单元,用于对所述各个字段的标签值的二进制序列进行转换,得到所述各个字段的标签值,并对所述各个字段的类型值的二进制序列进行转换,得到所述各个字段的类型值,并依据所述各个字段的标签值及类型值,确定所述各个字段的字段类型;第二反转换单元,用于依据所述各个字段的字段类型,分别获取其所属字段的值信息的二进制序列,并将所述各个字段的值信息的二本文档来自技高网...
【技术保护点】
一种对象序列化方法,其特征在于,预先为对象中各个字段设置类型值,所述类型值与其所属字段的字段类型相对应,所述方法包括:对所述各个字段的类型值进行二进制转换,得到所述各个字段的类型值的二进制序列,并对所述各个字段的标签值进行二进制转换,得到所述各个字段的标签值的二进制序列;合并所述各个字段的标签值的二进制序列和类型值的二进制序列,得到所述各个字段的键值的二进制序列;对所述各个字段的字段名称的值信息进行二进制转换,得到所述各个字段的值信息的二进制序列;连接所述各个字段的键值的二进制序列和值信息的二进制序列,得到所述各个字段的二进制序列;对所述各个字段的二进制序列进行连接,得到所述对象的二进制序列。
【技术特征摘要】
【专利技术属性】
技术研发人员:周丽芳,张权,刘鹏,王萍,张青,
申请(专利权)人:山东中创软件商用中间件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。