一种JSON数据的压缩方法,包括:遍历读取待压缩的JSON数据;若所述待压缩的JSON数据内有作用相同的第一符号字符和第二符号字符,则根据第一预设条件去掉第一符号字符或者第二符号字符,得到第一类压缩后的JSON数据。本发明专利技术所述JSON数据的压缩方法对所述JSON数据中的多余字符进行了压缩,实现了压缩所述JSON数据的技术效果;并且,通过确定索引,再根据索引对所述JSON数据的VALUE值按照索引进行压缩,也能够提高压缩效率;所述索引的设置中采用了一定的排序方法可以减少压缩所需时间,进一步提高压缩效率。
JSON Data Compression Method, Device and Computer Readable Storage Media
【技术实现步骤摘要】
JSON数据的压缩方法、装置及计算机可读存储介质
本专利技术涉及数据压缩
,尤其涉及一种JSON数据的压缩方法、装置及计算机可读存储介质。
技术介绍
JSON是一种轻量级的数据交换格式,方便人工和机器处理。通常被用来作为数据交换格式,就像XML。但JSON的数据重复度度较高,文件越大,KEY值重复次数越多,在移动互联网应用中传输数据消耗的流量较多。为了避免减少JSON在数据交换中对流量的消耗,现有技术中提出了两种开源压缩方法对JSON数据进行压缩,主要包括:CJSON和HPack,CJSON的压缩方法主要是将原始JSON数据抽离成Template(模版)和Value(值),即省掉其中JSON数据中重复的“Key值”。HPack也是将原始JSON数据抽离成Template和Value,阵列中第一个值是Template,后面依序就是Value。但是,无论是CJSON还是Hpack,压缩后的字符串依然存在冗余数据,还有一定的压缩余地,压缩效率可以进一步提高,具体示例可参见中国专利技术专利,该专利名称是:一种无损JSON数据压缩方法,专利号是:ZL201310328885.3。
技术实现思路
本专利技术的目的在于提供一种JSON数据的压缩方法、装置及计算机可读存储介质,解决现有技术中的JSON数据压缩方法中字符串仍然存在冗余数据,压缩效率不够高的问题。如上构思,本专利技术所采用的技术方案是:一种JSON数据的压缩方法。所述JSON数据的压缩方法包括:遍历读取待压缩的JSON数据;若所述待压缩的JSON数据内有作用相同的第一符号字符和第二符号字符,则根据第一预设条件去掉第一符号字符或者第二符号字符,得到第一类压缩后的JSON数据。进一步地,所述作用相同包括:用于间隔单个VALUE值和KEY值;或者,用于间隔单组VALEU值和KEY值。进一步地,所述第一预设体条件为:符号字符仅作为符号。进一步地,若被去掉的所述第一符号字符内的数据对象的特定位置包含有所述第二符号字符,或者,若被去掉的所述第二符号字符内的数据对象的特定位置包含有所述第三符号字符;则在所述特定位置增加第三符号字符,所述第三符号字符为首次出现在所述JSON数据中。进一步地,所述方法还包括:根据所述第一类压缩后的JSON数据确定索引与第一JSON数据,根据索引对第一JSON数据进行压缩。进一步地,所述确定索引包括:取所述第一类压缩后的JSON数据作为初始索引;对所述初始索引中的值进行排序后得到索引。进一步地,所述对初始索引中的值进行排序包括:将KEY值排序到索引的尾部;将JSON数据中的VALUE值按照在所述初始集中的出现频率依次从所述索引的头部开始排列。进一步地,所述根据索引对第一JSON数据进行压缩包括:按照所述索引中的位置对所述第一JSON数据中的VALUE值进行替换获得第二类压缩后的JSON数据。本专利技术还提供一种JSON数据的压缩装置,还包括:数据存储模块,所述数据存储模块用于存储数据;数据遍历模块,所述数据遍历模块遍历读取待压缩的JSON数据;字符判断模块,所述判断模块用于判断所述待压缩的JSON数据内有作用相同的第一符号字符和第二符号字符;数据压缩模块,所述数据压缩模块用于压缩JSON数据。进一步地,还包括:数据索引模块,所述数据索引模块用于确定索引;数据集模块,所述数据集模块用于将所述索引和所述第一类压缩后的JSON数据提取形成所述第一JSON数据。本专利技术还提供了一种计算机可读存储介质,其上存储有计算机程序,,该程序被被处理器执行上述任一项所述的JSON数据的压缩方法。本专利技术的有益效果:本专利技术所述JSON数据的压缩方法对所述JSON数据中的多余字符进行了压缩,实现了压缩所述JSON数据的技术效果;并且,通过确定索引,再根据索引对所述JSON数据的VALUE值按照索引进行压缩,也能够提高压缩效率;所述索引的设置中采用了一定的排序方法可以减少压缩所需时间,进一步提高压缩效率。附图说明图1是本专利技术第一实施例所述JSON数据的压缩方法的步骤图;图2是本专利技术第一实施例所述JSON数据的压缩方法的具体操作步骤图;图3是本专利技术第二实施例所述JSON数据的压缩方法的步骤图;图4是本专利技术第二实施例所述JSON数据的压缩方法的具体操作步骤图;图5是本专利技术第三实施例所述JSON数据的压缩装置结构框图;图6是本专利技术第四实施例所述JSON数据的压缩装置结构框图。具体实施方式为使本专利技术解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面结合附图并通过具体实施方式来进一步说明本专利技术的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部。第一实施例本实施例提供了一种JSON数据的压缩方法,参考图1-2,所述JSON数据的压缩方法包括:遍历读取待压缩的JSON数据;若所述待压缩的JSON数据内有作用相同的第一符号字符和第二符号字符,则根据第一预设条件去掉第一符号字符或者第二符号字符,得到第一类压缩后的JSON数据。所述作用相同包括:用于间隔单个VALUE值和KEY值;或者,用于间隔单组VALEU值和KEY值。示例性地,下文为一段待压缩的所述JSON数据:[["name","age","gen,der","skilled"],["Andrea",31,"Male",true],["Eva",27,"Female",true],["Dan,iele",26,"Male",false]]在这段所述JSON数据中,“""”、“,”均为符号字符,所述第一符号字符可以为任意一个所述第二符号也可以为任意一个,但是,所述第一符号字符和所述第二符号字符不同,根据上文可以看出,“""”、“,”的作用相同,两者均是隔开了一个VALUE或者KEY。所述第一预设体条件为:符号字符仅为符号。示例性地,在上文的待压缩的所述JSON数据中,有三个符号字符,粉笔是,“""”、“,”、“[]”,这三个的字节数分别为2,1,2,而且显然如果压缩“[]”会对所述JSON数据结构有影响,因此,压缩所述JSON数据时,首先压缩字节数大的“""”这个符号字符。若被去掉的所述第一符号字符内的数据对象的特定位置包含有所述第二符号字符,或者,若被去掉的所述第二符号字符内的数据对象的特定位置包含有所述第三符号字符;则在所述特定位置增加第三符号字符,所述第三符号字符为首次出现在所述JSON数据中。示例性地,在上文的待压缩的所述JSON数据中,存在一个VALUE“"gen,der"”,一个VALUE中存在了一个“,”字符符号,其为该VALUE本身的字符,此时如果直接将“,”字符符号去掉,则会产生分岐,所以通过在当前“,”所在的特定位置增加一个第三符号字符进行区别。所述第三符号字符在本实施例中选取的是“\”,与所述第一符号字符和第二符号字符不同即可。根据上述方法的压缩,得到了压缩后的所述JSON数据。示例性地,压缩后的所述JSON数据是:[[name,age,gen\,der,skilled],[Andrea,31,Male,true],[Eva,27,Female,true],[Dan\,iele,26,Male,f本文档来自技高网...
【技术保护点】
1.一种JSON数据的压缩方法,其特征在于,包括:遍历读取待压缩的JSON数据;若所述待压缩的JSON数据内有作用相同的第一符号字符和第二符号字符,则根据第一预设条件去掉第一符号字符或者第二符号字符,得到第一类压缩后的JSON数据。
【技术特征摘要】
1.一种JSON数据的压缩方法,其特征在于,包括:遍历读取待压缩的JSON数据;若所述待压缩的JSON数据内有作用相同的第一符号字符和第二符号字符,则根据第一预设条件去掉第一符号字符或者第二符号字符,得到第一类压缩后的JSON数据。2.如权利要求1所述的JSON数据的压缩方法,其特征在于,所述作用相同包括:用于间隔单个VALUE值和KEY值;或者,用于间隔单组VALEU值和KEY值。3.如权利要求1所述的JSON数据的压缩方法,其特征在于,所述第一预设体条件为:符号字符仅作为符号。4.如权利要求3所述的JSON数据的压缩方法,其特征在于,若被去掉的所述第一符号字符内的数据对象的特定位置包含有所述第二符号字符,或者,若被去掉的所述第二符号字符内的数据对象的特定位置包含有所述第三符号字符;则在所述特定位置增加第三符号字符,所述第三符号字符为首次出现在所述JSON数据中。5.如权利要求1所述的JSON数据的压缩方法,其特征在于,还包括:根据所述第一类压缩后的JSON数据确定索引与第一JSON数据,根据索引对第一JSON数据进行压缩。6.如权利要求6所述的JSON数据的压...
【专利技术属性】
技术研发人员:陈杰,
申请(专利权)人:芜湖智久机器人有限公司,
类型:发明
国别省市:安徽,34
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。