CN114665887B - 一种基于整体压缩的json字符串数据压缩方法 - Google Patents
一种基于整体压缩的json字符串数据压缩方法 Download PDFInfo
- Publication number
- CN114665887B CN114665887B CN202210566904.5A CN202210566904A CN114665887B CN 114665887 B CN114665887 B CN 114665887B CN 202210566904 A CN202210566904 A CN 202210566904A CN 114665887 B CN114665887 B CN 114665887B
- Authority
- CN
- China
- Prior art keywords
- value
- data
- json
- compression
- preset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于整体压缩的JSON字符串数据压缩方法,属于数据压缩技术领域,包括步骤:S1,输入JSON字符串并根据JSON公共语法解析为二叉树;S2,将二叉树根据预设的数据字典,对K值和V值进行语义编码;S3,在步骤S2中语义编码完成后,进行统计学编码后输出。本发明实现语义程度上的深度压缩,降低存储空间,提升压缩率。
Description
技术领域
本发明涉及数据压缩领域,更为具体的,涉及一种基于整体压缩的JSON字符串数据压缩方法。
背景技术
目前JSON编码,具有代表性的是哈夫曼编码与LZ77编码。其中哈夫曼是采用将重复的字符做统计后,构建二叉树后,采用0和1,描述二叉树关系,以此达到压缩的目的;LZ77则是利用数据的重复结构信息来进行数据压缩。但以上两种方式,无论是哈夫曼还是lZ77,都是针对JSON数据串中的每一条数据进行压缩,即都不考虑JSON数据格式中,每一个K值前后者之间的关系,或是每一个V值的类型。在存储空间利用率和压缩率上,均有待提升。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于整体压缩的JSON字符串数据压缩方法,实现语义程度上的深度压缩,降低存储空间,提升压缩率。
本发明的目的是通过以下方案实现的:
一种基于整体压缩的JSON字符串数据压缩方法,包括步骤:
S1,输入JSON字符串并根据JSON公共语法解析为二叉树;
S2,将二叉树根据预设的数据字典,对K值和V值进行语义编码;
S3,在步骤S2中语义编码完成后,进行统计学编码后输出。
进一步地,在步骤S2中,包括子步骤:
针对K值,首先将K值转换为数字,再根据转换后的数字之间的关系和预设的K值数据字典进行转换编码;
针对V值,根据预设的V值数据字典进行转换编码。
进一步地,所述预设的K值数据字典和V值数据字典均采用0~15,共16个数字来描述可能出现的所有情况。
进一步地,在步骤S1解析之前,包括步骤:将JSON数据进行结构化处理。
进一步地,在步骤S3之后,包括步骤:在解码时,根据JSON字符串数据路径,按需解码。
进一步地,所述V值的类型定义值为0~15。
进一步地,所述转换后的数字之间的关系包括数字之间的差值关系。
本发明的有益效果包括:
本发明在理解了整体K值与V值的语义的基础上,根据JSON数据中每一条数据其前后关系,对于存储差值可以节省空间的部分采用差值进行存储,而针对一些较为普遍出现的内容,如V值类型,数据类型种类有限,且重复度较高,故可采用预设的固定数字进行替代,并以此形成数据字典,实现语义程度上的深度压缩,降低存储空间,提升压缩率,不需要针对JSON数据串中的每一条数据进行压缩,而是从整体实现了压缩,提高了存储空间利用率和压缩率。
本发明将JSON数据进行结构化,可以提供更快的访问速度。
本发明可实现在检索时,可实现按需进行解码。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的方法步骤流程图。
具体实施方式
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。下面根据附图1,对本发明的技术构思、解决的技术问题、工作原理、工作过程和有益效果作进一步详细、充分地说明。
术语解释
Key是索引,Value是数据,本领域公知常识称为K值、V值。
本发明实施例在理解了整体K值与V值的语义的基础上,提供一种基于整体压缩的JSON字符串数据压缩方法。根据JSON数据中每一条数据其前后关系,对于存储差值可以节省空间的部分则采用差值进行存储,而针对一些较为普遍出现的内容,如V值类型,数据类型种类有限,且重复度较高,故可采用预设的固定数字进行替代,并以此形成数据字典。
在具体实施过程中,K值先转换为数字,再根据预设的0~15之间的关系进行转换编码。根据JSON字符串数据中的V值前后之间的关系,采用预设固定字符描述进行存储,可以降低存储空间,提升压缩率。
本发明实施例方法,专用于压缩JSON字符串数据,支持语义深度压缩。根据JSON字符串数据中,K值根据转换后的数字和转换后的数字之间的关系进行编码,根据V值的数据类型,采用预设数字代码进行代替并生成数据字典,从而对JSON字符串数据进行深度压缩。其中,K值预设数字代码及其类型定义如下表1所示:
表1
V值预设数字代码及其类型定义,如下表2所示:
表2
当接收到一段既定JSON字符串后,先从整体进行分析相邻数据之间的K值转换后的数字之间存在的关系,若采用差值或采用预设字符进行表示会更加节省空间,则采用差值存储或预设字符进行存储。对于V值,则是根据其数据状态,若在既定的表达方式里有相应状态,则采用预设数字代码进行存储。
对本发明实施例方法的技术效果验证如下:为证实上述实施例方法有性能上的明显提升,测试结果如下:
表3
由以上表3可看出,本发明实施例方法,于JSON格式文件压缩,实现了压缩率提升。此处的深度压缩指本发明实施例方法结合zlib压缩后,达到的效果。
实施例1
一种基于整体压缩的JSON字符串数据压缩方法,包括步骤:
S1,输入JSON字符串并根据JSON公共语法解析为二叉树;
S2,将二叉树根据预设的数据字典,对K值和V值进行语义编码;
S3,在步骤S2中语义编码完成后,进行统计学编码后输出。
实施例2
在实施例1的基础上,在步骤S2中,包括子步骤:
针对K值,首先将K值转换为数字,再根据转换后的数字之间的关系形成预设的K值数据字典进行转换编码;
针对V值,根据预设的V值数据字典进行转换编码。
实施例3
在实施例2的基础上,所述预设的K值数据字典和V值数据字典均采用0~15,共16个数字来描述可能出现的所有情况。
实施例4
在任一实施例1~实施例3的基础上,在步骤S1解析之前,包括步骤:将JSON数据进行结构化处理。
实施例5
在实施例1的基础上,在步骤S3之后,包括步骤:在解码时,根据JSON字符串数据路径,按需解码。
实施例6
在实施例1的基础上所述V值的类型定义值为0~15。
实施例7
在实施例2的基础上,所述转换后的数字之间的关系包括数字之间的差值关系。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
除以上实例以外,本领域技术人员根据上述公开内容获得启示或利用相关领域的知识或技术进行改动获得其他实施例,各个实施例的特征可以互换或替换,本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (5)
1.一种基于整体压缩的JSON字符串数据压缩方法,其特征在于,包括步骤:
S1,输入JSON字符串并根据JSON公共语法解析为二叉树;
S2,根据JSON数据中每一条数据其前后关系,对于存储差值能够节省空间的部分采用差值进行存储,而针对V值,采用预设的固定数字进行替代,并以此形成数据字典;将二叉树根据预设的数据字典,对K值和V值进行语义编码;当接收到一段既定JSON字符串后,先从整体进行分析相邻数据之间的K值转换后的数字之间存在的关系,若采用差值或采用预设字符进行表示会更加节省空间,则采用差值存储或预设字符进行存储;对于V值,则是根据其数据状态,若在既定的表达方式里有相应状态,则采用预设数字代码进行存储;
在步骤S2中,包括子步骤:
针对K值,首先将K值转换为数字,再根据转换后的数字之间的关系和预设的K值数据字典进行转换编码;
针对V值,根据预设的V值数据字典进行转换编码;
S3,在步骤S2中语义编码完成后,进行统计学编码后输出;在步骤S3之后,包括步骤:在解码时,根据JSON字符串数据路径,按需解码。
2.根据权利要求1所述的基于整体压缩的JSON字符串数据压缩方法,其特征在于,所述预设的K值数据字典和预设的V值数据字典均采用0~15,共16个数字来描述可能出现的所有情况。
3.根据权利要求1~2任一项所述的基于整体压缩的JSON字符串数据压缩方法,其特征在于,在步骤S1解析之前,包括步骤:将JSON数据进行结构化处理。
4.根据权利要求1所述的基于整体压缩的JSON字符串数据压缩方法,其特征在于,所述V值的类型定义值为0~15。
5.根据权利要求2所述的基于整体压缩的JSON字符串数据压缩方法,其特征在于,所述转换后的数字之间的关系包括数字之间的差值关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210566904.5A CN114665887B (zh) | 2022-05-24 | 2022-05-24 | 一种基于整体压缩的json字符串数据压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210566904.5A CN114665887B (zh) | 2022-05-24 | 2022-05-24 | 一种基于整体压缩的json字符串数据压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114665887A CN114665887A (zh) | 2022-06-24 |
CN114665887B true CN114665887B (zh) | 2022-09-06 |
Family
ID=82037715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210566904.5A Active CN114665887B (zh) | 2022-05-24 | 2022-05-24 | 一种基于整体压缩的json字符串数据压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114665887B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9460198B1 (en) * | 2012-07-26 | 2016-10-04 | Google Inc. | Process for serializing and deserializing data described by a schema |
CN109450450A (zh) * | 2018-10-17 | 2019-03-08 | 杭州费尔斯通科技有限公司 | 一种json数据实时无损压缩以及解压方法 |
CN109871373A (zh) * | 2019-01-31 | 2019-06-11 | 北京明略软件系统有限公司 | 一种数据存储方法和装置、计算机可读存储介质 |
CN113658645A (zh) * | 2021-08-12 | 2021-11-16 | 碳硅(杭州)生物科技有限责任公司 | 一种质谱数据压缩方法 |
CN114063858A (zh) * | 2021-11-26 | 2022-02-18 | 北京百度网讯科技有限公司 | 图像处理方法、装置、电子设备及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283567B (zh) * | 2013-07-02 | 2018-07-03 | 北京四维图新科技股份有限公司 | 一种名称数据的压缩、解压缩方法及设备 |
CN104298690B (zh) * | 2013-07-19 | 2017-12-29 | 国际商业机器公司 | 为关系数据库表建立索引结构并进行查询的方法和装置 |
US9355111B2 (en) * | 2014-04-30 | 2016-05-31 | Microsoft Technology Licensing, Llc | Hierarchical index based compression |
CN107592116B (zh) * | 2017-09-21 | 2019-06-11 | 咪咕文化科技有限公司 | 一种数据压缩方法、装置及存储介质 |
CN108156173A (zh) * | 2018-01-09 | 2018-06-12 | 江苏徐工信息技术股份有限公司 | 一种json数据包的动态无损压缩方法 |
CN111078652A (zh) * | 2019-11-28 | 2020-04-28 | 江苏苏宁物流有限公司 | 物流箱码的归档压缩方法及装置 |
CN113342907B (zh) * | 2021-06-29 | 2023-02-21 | 积成电子股份有限公司 | 一种用能信息采集系统台区拓扑画像绘制方法与系统 |
CN113269863B (zh) * | 2021-07-19 | 2021-09-28 | 成都索贝视频云计算有限公司 | 一种基于视频图像的前景物体阴影实时生成方法 |
CN113676734A (zh) * | 2021-08-05 | 2021-11-19 | 维沃移动通信(杭州)有限公司 | 图像压缩方法和图像压缩装置 |
CN114077609B (zh) * | 2022-01-19 | 2022-04-22 | 北京四维纵横数据技术有限公司 | 数据存储及检索方法,装置,计算机可读存储介质及电子设备 |
-
2022
- 2022-05-24 CN CN202210566904.5A patent/CN114665887B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9460198B1 (en) * | 2012-07-26 | 2016-10-04 | Google Inc. | Process for serializing and deserializing data described by a schema |
CN109450450A (zh) * | 2018-10-17 | 2019-03-08 | 杭州费尔斯通科技有限公司 | 一种json数据实时无损压缩以及解压方法 |
CN109871373A (zh) * | 2019-01-31 | 2019-06-11 | 北京明略软件系统有限公司 | 一种数据存储方法和装置、计算机可读存储介质 |
CN113658645A (zh) * | 2021-08-12 | 2021-11-16 | 碳硅(杭州)生物科技有限责任公司 | 一种质谱数据压缩方法 |
CN114063858A (zh) * | 2021-11-26 | 2022-02-18 | 北京百度网讯科技有限公司 | 图像处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
Compression of XML and JSON API Responses;Gyan P. Tiwary等;《IEEE Access》;20210413;第9卷;57426-57439 * |
基于HNBJSON的物联网数据压缩方法;刘凯等;《南京邮电大学学报(自然科学版)》;20211230;第41卷(第6期);29-34 * |
Also Published As
Publication number | Publication date |
---|---|
CN114665887A (zh) | 2022-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100614677B1 (ko) | 구조화된 문서를 압축/복원하기 위한 방법 | |
US9223765B1 (en) | Encoding and decoding data using context model grouping | |
Moffat | Implementing the PPM data compression scheme | |
Sundaresan et al. | Algorithms and programming models for efficient representation of XML for Internet applications | |
US8933829B2 (en) | Data compression using dictionary encoding | |
CN110518917B (zh) | 基于Huffman编码的LZW数据压缩方法及系统 | |
CN116506073B (zh) | 一种工业计算机平台数据快速传输方法及系统 | |
CN101562455A (zh) | 内容可适性二元算数编码的译码装置及其译码方法 | |
Moffat | Two-level context based compression of binary images | |
WO2023109019A1 (zh) | 一种基于deflate霍夫曼编码的动态码表生成装置和方法 | |
CN113300715A (zh) | 一种数据处理方法、装置、硬件压缩设备以及介质 | |
CN116610265A (zh) | 一种商务信息咨询系统的数据存储方法 | |
CN103731154A (zh) | 一种基于语义分析的数据压缩算法 | |
CN114665887B (zh) | 一种基于整体压缩的json字符串数据压缩方法 | |
CN116827354B (zh) | 一种文件数据分布式存储管理系统 | |
CN111767280A (zh) | 数据处理方法、装置及存储介质 | |
US9235610B2 (en) | Short string compression | |
CN112506876B (zh) | 一种支持sql查询的无损压缩查询方法 | |
KR100653189B1 (ko) | 엑스엠엘 문서 변환 장치 및 그 방법 | |
US9160820B2 (en) | Large volume data transfer | |
CN102891730B (zh) | 基于bcd码卫星短报文的编码方法和装置 | |
Cheney | Statistical Models for Term Compression. | |
CN109639285B (zh) | 一种基于有限块排序压缩提高bzip2压缩算法速度的方法 | |
Huang et al. | Lossless compression algorithm for multi-source sensor data research | |
Liefke et al. | XMill: an E cient Compressor for XML Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |