基于自训练字典编码的json数据压缩方法及装置制造方法及图纸

技术编号:37199664 阅读:8 留言:0更新日期:2023-04-20 22:56
本发明专利技术提供一种基于自训练字典编码的json数据压缩方法及装置,所述方法包括:响应客户端的数据传输请求,基于数据传输请求确定待传输的json原始数据;获取与json原始数据相匹配的自训练编码字典,基于自训练编码字典对json原始数据进行压缩编码;若判断客户端存储有与自训练编码字典对应的字典,则将压缩编码后的数据传输至客户端,否则将压缩编码后的数据以及与自训练编码字典对应的字典传输至客户端。本发明专利技术通过在传输json数据前采用自训练的编码字典来进行压缩编码,能够在压缩编码后依然保留json结构,无需对客户端和服务端进行协议改造,从而提高了压缩效率和提高了算法的兼容性。兼容性。兼容性。

【技术实现步骤摘要】
基于自训练字典编码的json数据压缩方法及装置


[0001]本专利技术涉及数据压缩
,尤其是涉及一种基于自训练字典编码的json数据压缩方法及装置。

技术介绍

[0002]Json是目前应用网络通信中应用最广泛的数据格式,采用键值对的方式编码,使用简单,易于阅读。但由于采用的是文本编码的方式,压缩效率不够高,占用流量的比较大。
[0003]目前业界压缩json主要有3种方式:1.标准的HTTP压缩算法:gzip、deflate、brotli;2.转换成其他高压缩率格式,例如json转protobuf;3.json精简方式。HPack和cjson。方法1,是HTTP协议支持的标准算法,只需要在HTTP的请求头和响应头加上压缩标识即可;gzip、deflate、brotli等压缩算法在压缩大文本时效果明显,但传输的报文较小(例如<1k字节)时压缩效率较低。方法2,protobuf采用了二进制编码和变长编码的方法,理论上可以大幅减少报文大小,但实现复杂,需要客户端和服务端同时做协议改造,前期改造成本高;同时客户端和服务端后续需要同时维护protobuf的协议文件,后期维护成本高。方法3,通过将重复的key值剥离出来,形成一个模板,减少数据量,但是该方法当重复字段少时压缩效果不高。

技术实现思路

[0004]本专利技术旨在提供一种基于自训练字典编码的json数据压缩方法、装置、设备及存储介质,以解决上述技术问题,从而能够提高压缩效率并提高算法的兼容性。
[0005]为了解决上述技术问题,本专利技术提供了一种基于自训练字典编码的json数据压缩方法,包括:响应客户端的数据传输请求,基于所述数据传输请求确定待传输的json原始数据;获取与所述json原始数据相匹配的自训练编码字典,基于所述自训练编码字典对所述json原始数据进行压缩编码;若判断所述客户端存储有与所述自训练编码字典对应的字典,则将压缩编码后的数据传输至所述客户端,否则将压缩编码后的数据以及与所述自训练编码字典对应的字典传输至所述客户端。
[0006]进一步地,所述获取与所述json原始数据相匹配的自训练编码字典,包括:当确定本地未存储有自训练编码字典时,根据所述json原始数据建立与所述json原始数据相匹配的自训练编码字典;当确定本地存储有自训练编码字典时,判断该自训练编码字典是否与所述json原始数据相匹配;若否,则基于所述json原始数据重新建立与所述json原始数据相匹配的自训练编码字典;
若是,则从本地获取与所述json原始数据相匹配的自训练编码字典。
[0007]进一步地,所述数据传输请求包括字典哈希值;所述判断所述客户端存储有与所述自训练编码字典对应的字典,具体包括:基于所述字典哈希值进行校验,以判断所述客户端是否存储有与所述自训练编码字典对应的字典;其中,所述字典哈希值是所述客户端基于其本地存储的字典生成的哈希值。
[0008]进一步地,所述基于所述自训练编码字典对所述json原始数据进行压缩编码,具体包括:基于所述自训练编码字典仅对所述json原始数据的key值进行压缩编码。
[0009]本专利技术还提供一种基于自训练字典编码的json数据压缩方法,包括:向服务端发起数据传输请求,以使所述服务端基于所述数据传输请求确定待传输的json原始数据,所述服务端获取与所述json原始数据相匹配的自训练编码字典,所述服务端基于所述自训练编码字典对所述json原始数据进行压缩编码,若所述服务端判断客户端存储有与所述自训练编码字典对应的字典,则返回压缩编码后的数据,否则返回压缩编码后的数据以及与所述自训练编码字典对应的字典;基于与所述自训练编码字典对应的字典对返回的压缩编码后的数据进行数据解码,还原得到所述json原始数据。
[0010]进一步地,所述服务端获取与所述json原始数据相匹配的自训练编码字典,包括:当所述服务端确定其本地未存储有自训练编码字典时,根据所述json原始数据建立与所述json原始数据相匹配的自训练编码字典;当所述服务端确定其本地存储有自训练编码字典时,判断该自训练编码字典是否与所述json原始数据相匹配;若否,则所述服务端基于所述json原始数据重新建立与所述json原始数据相匹配的自训练编码字典;若是,则所述服务端从其本地获取与所述json原始数据相匹配的自训练编码字典。
[0011]进一步地,所述向服务端发起数据传输请求,包括:向服务端发起数据传输请求;其中,所述数据传输请求包括自身基于本地存储的字典生成的哈希值;所述服务端判断客户端存储有与所述自训练编码字典对应的字典,包括:所述服务端基于所述字典哈希值进行校验,以判断所述客户端是否存储有与所述自训练编码字典对应的字典。
[0012]进一步地,所述服务端基于所述自训练编码字典对所述json原始数据进行压缩编码,具体包括:所述服务端基于所述自训练编码字典仅对所述json原始数据的key值进行压缩编码。
[0013]本专利技术还提供一种基于自训练字典编码的json数据压缩装置,包括:请求响应模块,用于响应客户端的数据传输请求,基于所述数据传输请求确定待传输的json原始数据;
数据压缩模块,用于获取与所述json原始数据相匹配的自训练编码字典,基于所述自训练编码字典对所述json原始数据进行压缩编码;数据传输模块,用于若判断所述客户端存储有与所述自训练编码字典对应的字典,则将压缩编码后的数据传输至所述客户端,否则将压缩编码后的数据以及与所述自训练编码字典对应的字典传输至所述客户端。
[0014]本专利技术还提供一种基于自训练字典编码的json数据压缩装置,包括:请求发起模块,用于向服务端发起数据传输请求,以使所述服务端基于所述数据传输请求确定待传输的json原始数据,所述服务端获取与所述json原始数据相匹配的自训练编码字典,所述服务端基于所述自训练编码字典对所述json原始数据进行压缩编码,若所述服务端判断客户端存储有与所述自训练编码字典对应的字典,则返回压缩编码后的数据,否则返回压缩编码后的数据以及与所述自训练编码字典对应的字典;数据解码模块,用于基于与所述自训练编码字典对应的字典对返回的压缩编码后的数据进行数据解码,还原得到所述json原始数据。
[0015]与现有技术相比,本专利技术具有如下有益效果:本专利技术提供了一种基于自训练字典编码的json数据压缩方法及装置,所述方法包括:响应客户端的数据传输请求,基于所述数据传输请求确定待传输的json原始数据;获取与所述json原始数据相匹配的自训练编码字典,基于所述自训练编码字典对所述json原始数据进行压缩编码;若判断所述客户端存储有与所述自训练编码字典对应的字典,则将压缩编码后的数据传输至所述客户端,否则将压缩编码后的数据以及与所述自训练编码字典对应的字典传输至所述客户端。本专利技术通过在传输json数据前采用自训练的编码字典来进行压缩编码,能够在压缩编码后依然保留json结构,无需对客户端和服务端进行协议改造,从而提高了压缩效率和提高了算法的兼本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于自训练字典编码的json数据压缩方法,其特征在于,包括:响应客户端的数据传输请求,基于所述数据传输请求确定待传输的json原始数据;获取与所述json原始数据相匹配的自训练编码字典,基于所述自训练编码字典对所述json原始数据进行压缩编码;若判断所述客户端存储有与所述自训练编码字典对应的字典,则将压缩编码后的数据传输至所述客户端,否则将压缩编码后的数据以及与所述自训练编码字典对应的字典传输至所述客户端。2.根据权利要求1所述的基于自训练字典编码的json数据压缩方法,其特征在于,所述获取与所述json原始数据相匹配的自训练编码字典,包括:当确定本地未存储有自训练编码字典时,根据所述json原始数据建立与所述json原始数据相匹配的自训练编码字典;当确定本地存储有自训练编码字典时,判断该自训练编码字典是否与所述json原始数据相匹配;若否,则基于所述json原始数据重新建立与所述json原始数据相匹配的自训练编码字典;若是,则从本地获取与所述json原始数据相匹配的自训练编码字典。3.根据权利要求1所述的基于自训练字典编码的json数据压缩方法,其特征在于,所述数据传输请求包括字典哈希值;所述判断所述客户端存储有与所述自训练编码字典对应的字典,具体包括:基于所述字典哈希值进行校验,以判断所述客户端是否存储有与所述自训练编码字典对应的字典;其中,所述字典哈希值是所述客户端基于其本地存储的字典生成的哈希值。4.根据权利要求1所述的基于自训练字典编码的json数据压缩方法,其特征在于,所述基于所述自训练编码字典对所述json原始数据进行压缩编码,具体包括:基于所述自训练编码字典仅对所述json原始数据的key值进行压缩编码。5.一种基于自训练字典编码的json数据压缩方法,其特征在于,包括:向服务端发起数据传输请求,以使所述服务端基于所述数据传输请求确定待传输的json原始数据,所述服务端获取与所述json原始数据相匹配的自训练编码字典,所述服务端基于所述自训练编码字典对所述json原始数据进行压缩编码,若所述服务端判断客户端存储有与所述自训练编码字典对应的字典,则返回压缩编码后的数据,否则返回压缩编码后的数据以及与所述自训练编码字典对应的字典;基于与所述自训练编码字典对应的字典对返回的压缩编码后的数据进行数据解码,还原得到所述json原始数据。6.根据权利要求5所述的基于自训练字典编码的json数据压缩方法,其特征在于,所述服务端获取与所述json原始...

【专利技术属性】
技术研发人员:韩兵钟晓锋
申请(专利权)人:深圳依时货拉拉科技有限公司
类型:发明
国别省市:

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

1