技术新讯 > 电子电路装置的制造及其应用技术 > 一种基于数据对象的数据压缩传输方法与流程  >  正文

一种基于数据对象的数据压缩传输方法与流程

  • 国知局
  • 2024-08-02 15:45:03

本发明属于数据传输,具体涉及一种基于数据对象的数据压缩传输方法。

背景技术:

1、随着时代的进步与科技的发展,互联网越来越普及,文件存储和数据传输也显得尤为重要,一个合理的数据格式能够更好的利用硬盘存储空间,且一个合理的数据格式能够更好的利用网络带宽,因此将存储格式和网络传输数据格式进行统一是至关重要的,统一后的数据格式即能节省存储空间,又能在网络传输中减少传输数据量,同时在开发过程中也能大大提升各方效率。

2、现有技术中,通常将数据文件压缩为json(javascript object notation,js对象简谱)格式,且使用json格式进行数据传输。json格式是一种轻量级的数据交换格式。它基于ecmascript(european computer manufacturers association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。易于人阅读和编写,可以在多种语言之间进行数据交换,同时也易于机器解析和生成。

3、现有技术存在以下技术问题:

4、1.json在存储或传输一个数据表的查询结果时,其内容会存在很多重复的字段名等,应用到具体场景时就会使整个应用场景的数据量成倍上升,不仅占用存储空间而且降低开发效率。

5、2.json在存储或传输数字的表示时,如:{“num”:200},该json中200是以3个字节进行存储或传输,而实际上200以二进制方式只占用一个字节,又如:[{“num”:100},{“num”:200}],该json内容可以看成是一个拥有一个字段num的数据表,该表共两行,其中的字段“num”出现频次也会随着表行数的增加而增加。因此json在数字的表示上存在浪费存储空间的问题。

技术实现思路

1、针对现有技术中存在的json对数据表的查询结果进行存储或传输时,不仅占用存储空间而且降低开发效率,以及json在对数字的表示进行传输或存储时,浪费存储空间的问题,本发明提出了一种基于数据对象的数据压缩传输方法,其目的为:通过对数据对象进行快速的封包和解包,极大的提高了开发效率和运算效率。

2、为实现上述目的本发明所采用的技术方案是:

3、一种基于数据对象的数据压缩传输方法,其包括:

4、s1:定义可编译数据类型,可编译数据类型用于表示所有基础数据类型;

5、s2:获取一个待编码的数据对象,并对所述数据对象进行解析,获取数据对象的基础数据类型;

6、s3:根据数据对象的基础数据类型对其进行编码,得到数据对象的可编译数据类型,用一个字节表示;

7、s4:然后根据数据对象的可编译数据类型,对数据对象的内容进行编码。

8、进一步地:s4.1:当数据对象的基础数据类型为最小的浮点数据存储单位半精度浮点型时,记录其可编译数据类型为,存储占用2个字节。

9、s4.2:当数据对象的基础数据类型为单精度浮点型时,记录其可编译数据类型,存储占用4个字节;其数据处理过程如下,判断记录的可编译数据类型是否能够满足半精度浮点可编译数据类型的存储条件,若满足则直接改为半精度浮点型的数据类型存储,不满足在采用单精度浮点型的数据类型存储。

10、s4.3:当数据对象的基础数据类型为双精度浮点型时,记录其可编译数据类型,存储占用8个字节;其数据处理过程如下,优先判断记录的可编译数据类型是否满足半精度浮点可编译数据类型的存储条件,满足则使用半精度浮点型的可编译数据类型存储;如不满足,则判断记录的可编译数据类型是否满足单精度浮点型的可编译数据类型存储条件,满足则使用单精度浮点型的可编译数据类型存储;在都不满足的情况下,进一步地采用精度损失,并使用截取之后的值重复之前的操作,若仍都不满足的情况下则使用双精度浮点型的可编译数据类型存储。

11、s4.4:当数据对象的基础数据类型为整数类型时,记录其可编译数据类型分别为

12、8个字节的数值范围为:

13、9,223,372,036,854,775,808~9,223,372,036,854,775,807

14、4个字节的数值范围为:-2,147,483,648~2,147,483,647

15、2个字节的数值范围为:-32768~32767

16、1个字节的数值范围为:-128~127

17、对数据的处理方式为:

18、存储占用多的数值依次判断能够被存储的最小单位,采用最小单位的方式存储,达到充分使用存储空间来达到数据压缩的目的。

19、s4.5:当数据对象的基础数据类型为字符串类型时,记录其可编译数据类型,对数据的处理方式为:在字符串索引表中查看该字符串是否已经编码过,如果有相同的字符串编码,直接使用引用值并增加计数,否则添加引用,并记录长度和数据内容,其中长度按照整数类型处理方式进行压缩。

20、s4.6:当数据对象的基础数据类型为布尔类型时,记录其可编译类型,对数据的处理方式为:直接对其进行存储。

21、s4.7:当数据对象的基础数据类型为处理数组类型时,记录其可编译数据类型,对数据的处理方式为:通过整数类型的处理方式,压缩处理数据对象的数组长度,然后遍历数据对象的数组数据,将数组成员数据符合s4.2-s4.6数据类型的数据按s4.2-s4.6的方式序列化,若数组成员数据中存在键值对数据,则按键值对类型的处理方式进行存储。

22、s4.8:当数据对象的基础数据类型为键值对类型时,记录其可编译数据类型为,对数据的处理方式为:记录成员数长度,其中长度的处理方式按s4.4整数类型方式进行压缩处理,然后对键值对的每项值按照s4.2-s4.7的方式序列化。

23、进一步地,当数据对象的基础数据类型为扩展数据类型,扩展行业单位变量,并将行业单位向量进行扩展序列化。

24、相比现有技术,本发明的技术方案具有如下优点/有益效果:

25、1.本发明的数据压缩传输方法,能够对数据对象进行快速的封包和解包,极大的提高了开发效率和运算效率。

26、2.本发明通过定义可编译数据类型用于表示所有基础数据类型,这样的数据压缩方法能够使多个终端中使用统一标准,能够应用于web开发,以及应用于服务端、客户端、移动端等的即时通讯,同时本发明能够在多种不同编程语言使用。

技术特征:

1.一种基于数据对象的数据压缩传输方法,其特征在于,包括:

2.根据权利要求1所述的一种基于数据对象的数据压缩传输方法,其特征在于:

3.根据权利要求2所述的一种基于数据对象的数据压缩传输方法,其特征在于:s4.2:当数据对象的基础数据类型为单精度浮点型时,记录其可编译数据类型,存储占用4个字节;其数据处理过程如下,判断记录的可编译数据类型是否能够满足半精度浮点可编译数据类型的存储条件,若满足则直接改为半精度浮点型的数据类型存储,不满足再采用单精度浮点型的数据类型存储。

4.根据权利要求3所述的一种基于数据对象的数据压缩传输方法,其特征在于:

5.根据权利要求4所述的一种基于数据对象的数据压缩传输方法,其特征在于:

6.根据权利要求5所述的一种基于数据对象的数据压缩传输方法,其特征在于:

7.根据权利要求6所述的一种基于数据对象的数据压缩传输方法,其特征在于:

8.根据权利要求7所述的一种基于数据对象的数据压缩传输方法,其特征在于,

9.根据权利要求8所述的一种基于数据对象的数据压缩传输方法,其特征在于,

10.根据权利要求9所述的一种基于数据对象的数据压缩传输方法,其特征在于,当数据对象的基础数据类型为扩展数据类型,扩展行业单位变量,并将行业单位向量进行扩展序列化。

技术总结本发明公开了一种基于数据对象的数据压缩传输方法,针对现有技术中存在的JSON对数据表的查询结果或者对数字的表示进行存储或传输时,不仅占用存储空间而且降低开发效率,浪费存储空间的问题,本发明的技术方案包括:定义可编译数据类型,可编译数据类型用于表示所有基础数据类型;获取一个待编码的数据对象,并对所述数据对象进行解析,获取数据对象的基础数据类型;根据数据对象的基础数据类型对其进行编码,得到数据对象的可编译数据类型,用一个字节表示;然后根据数据对象的可编译数据类型,对数据对象的内容进行编码。其目的为:通过对数据对象进行快速的封包和解包,极大的提高了开发效率和运算效率。技术研发人员:马进,李镜,余智君受保护的技术使用者:上海禹创智能科技有限公司技术研发日:技术公布日:2024/7/25

本文地址:https://www.jishuxx.com/zhuanli/20240801/247665.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。