当前位置: 首页 > 专利查询>曾吉丰专利>正文

一种键值对集合类型的二进制序列化方法及系统技术方案

技术编号:31695842 阅读:15 留言:0更新日期:2022-01-01 10:56
本发明专利技术提出了一种键值对集合类型的二进制序列化方法及系统,涉及计算机应用程序对象序列化技术领域。一种键值对集合类型的二进制序列化方法包括:键值对集合对象的序列化,将键值对集合应用程序对象序列化成字节数组;键值对集合对象反序列化,将字节数组反序列化成键值对集合应用程序对象;不用完全反序列化,用于从字节数组中获取键值对集合对象中的任意一个键值模块。其能够将应用程序对象完整的序列化和反序列化,还可以直接反序列化应用程序对象中的某个字段,且不需要在应用层面为目标应用程序对象进行任何约定。此外本发明专利技术还提出了一种键值对集合类型的二进制序列化系统。出了一种键值对集合类型的二进制序列化系统。出了一种键值对集合类型的二进制序列化系统。

【技术实现步骤摘要】
一种键值对集合类型的二进制序列化方法及系统


[0001]本专利技术涉及计算机应用程序对象序列化
,具体而言,涉及一种键值对集合类型的二进制序列化方法及系统。

技术介绍

[0002]在一些数据存储系统中,通常会将数据对象以json格式或者xml格式来进行存储,修改和读取时都要以整个目标对象为单位来进行数据的序列化和反序列化操作。目前常用的序列化方案是将目标对象以json格式进行序列化存储,当仅修改对象中的某个属性时需要重新完整的将目标对象序列化成json数据,当仅读取对象的某个属性时需要完整的将json数据反序列化成对象然后再读取目标属性。
[0003]现有技术的缺陷和不足:
[0004]现在的大多数序列化技术都因为协议的设计而只能对一个对象进行完整的反序列化,如果只想读取对象中的某个元素,需要完全的序列化或反序列化。
[0005]有的json存储数据中往往包含大量无用数据,如果只想读取json存储数据的某个字段,则必须先将整个json数据进行反序列化,这样会增加无用的反序列化开销。
[0006]按需反序列化某一个字段的实现通常是在应用层面来实现,如常见互联网序列化协议protobuf、meSagepack的Java和.net语言框架实现都是在应用程序中为被序列化对象定义索引下标,通过在应用程序中进行约定的方式来实现仅反序列化某一个字段的功能,这种功能是应用程序实现来赋能的,而不是协议或算法本身支持,因此不具备通用性和便捷性。

技术实现思路

[0007]本专利技术的目的在于提供一种键值对集合类型的二进制序列化方法,其能够将应用程序对象完整的序列化和反序列化,还可以直接反序列化应用程序对象中的某个字段,且不需要在应用层面为目标应用程序对象进行任何约定。
[0008]本专利技术的另一目的在于提供一种键值对集合类型的二进制序列化系统,其能够运行一种键值对集合类型的二进制序列化方法。
[0009]本专利技术的实施例是这样实现的:
[0010]第一方面,本申请实施例提供一种键值对集合类型的二进制序列化方法,其包括键值对集合对象的序列化:S110,将键值对集合通过预设算法将字符串转成字节数组,并对字节数组以固定字节切割成字节数组集合,得到Tuple数组;S120,将Tuple数组中的每个元素都转成Entry,得到Entry数组;S130,对Entry数组中Value为Tuple的部分进行不断的分组、排序,生成Group数组;S140,对Group数组进行序列化,往流中写入用来快速定位键值对键的路由段和用来存储键值对数据的数据段。
[0011]在本专利技术的一些实施例中,上述将键值对集合通过预设算法将字符串转成字节数组,并对字节数组以固定字节切割成字节数组集合,得到Tuple数组包括:S111,将键值对集
合通过utf8算法将字符串转成字节数组,并对字节数组以8个字节切割成字节数组集合,最终得到Tuple数组。
[0012]在本专利技术的一些实施例中,上述还包括键值对集合对象反序列化:S200,从流中读取路由段,根据路由段得出字节数组集合和值在数据段中的位置;S210,对字节数组集合通过utf8算法转换成字符串,从数据段中的指定位置读取值,得到一个键值对。
[0013]在本专利技术的一些实施例中,上述还包括:S220,若流中仍有元素可以读取,则重复S200及S210,直至流中再无元素可以读取。
[0014]在本专利技术的一些实施例中,上述包括不用完全反序列化从字节数组中获取键值对集合对象中的任意一个键值:S300,从流中读取路由段,通过键值对集合对象给定的键在路由段中查找值在数据段中的偏移量;S310,根据值偏移量在数据段中读取值。
[0015]第二方面,本申请实施例提供一种键值对集合类型的二进制序列化系统,其包括键值对集合对象的序列化模块,将键值对集合应用程序对象序列化成字节数组;键值对集合对象反序列化模块,将字节数组反序列化成键值对集合应用程序对象;不用完全反序列化模块,用于从字节数组中获取键值对集合对象中的任意一个键值模块。
[0016]在本专利技术的一些实施例中,上述键值对集合对象的序列化模块包括:切割子模块,用于将键值对集合通过预设算法将字符串转成字节数组,并对字节数组以固定字节切割成字节数组集合,得到Tuple数组;第一转换子模块,用于将Tuple数组中的每个元素都转成Entry,得到Entry数组;生成子模块,用于对Entry数组中Value为Tuple的部分进行不断的分组、排序,生成Group数组;存储子模块,用于对Group数组进行序列化,往流中写入用来快速定位键值对键的路由段和用来存储键值对数据的数据段。
[0017]在本专利技术的一些实施例中,上述键值对集合对象反序列化模块包括:定位子模块,用于从流中读取路由段,根据路由段得出字节数组集合和值在数据段中的位置;第二转换子模块,用于对字节数组集合通过utf8算法转换成字符串,从数据段中的指定位置读取值,得到一个键值对;循环子模块,若流中仍有元素可以读取,则重复定位子模块及第二转换子模块,直至流中再无元素可以读取。
[0018]在本专利技术的一些实施例中,上述不用完全反序列化模块包括:查找子模块,用于从流中读取路由段,通过键值对集合对象给定的键在路由段中查找值在数据段中的偏移量;读取子模块,用于根据值偏移量在数据段中读取值。
[0019]第三方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如一种键值对集合类型的二进制序列化方法中任一项的方法。
[0020]相对于现有技术,本专利技术的实施例至少具有如下优点或有益效果:
[0021]可以将应用程序对象完整的序列化和反序列化,还可以直接反序列化应用程序对象中的某个字段,且不需要在应用层面为目标应用程序对象进行任何约定。读取存储数据中的某一个字段时,无需将整个对象进行反序列化读取,没有多余的反序列化开销;不需要在应用程序层面为被序列化对象进行任何约定,即可直接读取存储数据中的某一个字段。
附图说明
[0022]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附
图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0023]图1为本专利技术实施例提供的一种键值对集合对象的序列化方法步骤示意图;
[0024]图2为本专利技术实施例提供的键值对集合对象序列化流程图;
[0025]图3为本专利技术实施例提供的键值对集合对象处理为Group数组流程图;
[0026]图4为本专利技术实施例提供的键值对集合序列化格式图;
[0027]图5为本专利技术实施例提供的一种键值对集合对象反序列化方法步骤示意图;
[0028]图6为本专利技术实施例提供的从流中反序列化键值对集合对象流程图;
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种键值对集合类型的二进制序列化方法,其特征在于,包括键值对集合对象的序列化:S110,将键值对集合通过预设算法将字符串转成字节数组,并对字节数组以固定字节切割成字节数组集合,得到Tuple数组;S120,将Tuple数组中的每个元素都转成Entry,得到Entry数组;S130,对Entry数组中Value为Tuple的部分进行不断的分组、排序,生成Group数组;S140,对Group数组进行序列化,往流中写入用来快速定位键值对键的路由段和用来存储键值对数据的数据段。2.如权利要求1所述的一种键值对集合类型的二进制序列化方法,其特征在于,所述将键值对集合通过预设算法将字符串转成字节数组,并对字节数组以固定字节切割成字节数组集合,得到Tuple数组包括:S111,将键值对集合通过utf8算法将字符串转成字节数组,并对字节数组以8个字节切割成字节数组集合,最终得到Tuple数组。3.如权利要求1所述的一种键值对集合类型的二进制序列化方法,其特征在于,还包括键值对集合对象反序列化:S200,从流中读取路由段,根据路由段得出字节数组集合和值在数据段中的位置;S210,对字节数组集合通过utf8算法转换成字符串,从数据段中的指定位置读取值,得到一个键值对。4.如权利要求3所述的一种键值对集合类型的二进制序列化方法,其特征在于,还包括:S220,若流中仍有元素可以读取,则重复S200及S210,直至流中再无元素可以读取。5.如权利要求1所述的一种键值对集合类型的二进制序列化方法,其特征在于,包括不用完全反序列化从字节数组中获取键值对集合对象中的任意一个键值:S300,从流中读取路由段,通过键值对集合对象给定的键在路由段中查找值在数据段中的偏移量;S310,根据值偏移量在数据段中读取值。6.一种键值对集合类型的二进制序列化系统,其特征在于,包括:键值对...

【专利技术属性】
技术研发人员:曾吉丰
申请(专利权)人:曾吉丰
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1