CN114665887A - 一种基于整体压缩的json字符串数据压缩方法 - Google Patents

一种基于整体压缩的json字符串数据压缩方法 Download PDF

Info

Publication number
CN114665887A
CN114665887A CN202210566904.5A CN202210566904A CN114665887A CN 114665887 A CN114665887 A CN 114665887A CN 202210566904 A CN202210566904 A CN 202210566904A CN 114665887 A CN114665887 A CN 114665887A
Authority
CN
China
Prior art keywords
value
compression
json
method based
character string
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.)
Granted
Application number
CN202210566904.5A
Other languages
English (en)
Other versions
CN114665887B (zh
Inventor
吴春中
张浩阳
温序铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Sobei Video Cloud Computing Co ltd
Original Assignee
Chengdu Sobei Video Cloud Computing Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Sobei Video Cloud Computing Co ltd filed Critical Chengdu Sobei Video Cloud Computing Co ltd
Priority to CN202210566904.5A priority Critical patent/CN114665887B/zh
Publication of CN114665887A publication Critical patent/CN114665887A/zh
Application granted granted Critical
Publication of CN114665887B publication Critical patent/CN114665887B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; 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字符串数据压缩方法。
背景技术
目前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
Figure 93365DEST_PATH_IMAGE001
V值预设数字代码及其类型定义,如下表2所示:
表2
Figure 807243DEST_PATH_IMAGE002
当接收到一段既定JSON字符串后,先从整体进行分析相邻数据之间的K值转换后的数字之间存在的关系,若采用差值或采用预设字符进行表示会更加节省空间,则采用差值存储或预设字符进行存储。对于V值,则是根据其数据状态,若在既定的表达方式里有相应状态,则采用预设数字代码进行存储。
对本发明实施例方法的技术效果验证如下:为证实上述实施例方法有性能上的明显提升,测试结果如下:
表3
Figure 242772DEST_PATH_IMAGE003
由以上表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 (7)

1.一种基于整体压缩的JSON字符串数据压缩方法,其特征在于,包括步骤:
S1,输入JSON字符串并根据JSON公共语法解析为二叉树;
S2,将二叉树根据预设的数据字典,对K值和V值进行语义编码;
S3,在步骤S2中语义编码完成后,进行统计学编码后输出。
2.根据权利要求1所述的基于整体压缩的JSON字符串数据压缩方法,其特征在于,在步骤S2中,包括子步骤:
针对K值,首先将K值转换为数字,再根据转换后的数字之间的关系和预设的K值数据字典进行转换编码;
针对V值,根据预设的V值数据字典进行转换编码。
3.根据权利要求2所述的基于整体压缩的JSON字符串数据压缩方法,其特征在于,所述预设的K值数据字典和预设的V值数据字典均采用0~15,共16个数字来描述可能出现的所有情况。
4.根据权利要求1~3任一项所述的基于整体压缩的JSON字符串数据压缩方法,其特征在于,在步骤S1解析之前,包括步骤:将JSON数据进行结构化处理。
5.根据权利要求1所述的基于整体压缩的JSON字符串数据压缩方法,其特征在于,在步骤S3之后,包括步骤:在解码时,根据JSON字符串数据路径,按需解码。
6.根据权利要求1所述的基于整体压缩的JSON字符串数据压缩方法,其特征在于,所述V值的类型定义值为0~15。
7.根据权利要求2所述的基于整体压缩的JSON字符串数据压缩方法,其特征在于,所述转换后的数字之间的关系包括数字之间的差值关系。
CN202210566904.5A 2022-05-24 2022-05-24 一种基于整体压缩的json字符串数据压缩方法 Active CN114665887B (zh)

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 true CN114665887A (zh) 2022-06-24
CN114665887B 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 (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283567A (zh) * 2013-07-02 2015-01-14 北京四维图新科技股份有限公司 一种名称数据的压缩、解压缩方法及设备
US20150026189A1 (en) * 2013-07-19 2015-01-22 International Business Machines Corporation Index structure for a relational database table
US20150317327A1 (en) * 2014-04-30 2015-11-05 Microsoft Corporation Hierarchical Index Based Compression
US9460198B1 (en) * 2012-07-26 2016-10-04 Google Inc. Process for serializing and deserializing data described by a schema
CN107592116A (zh) * 2017-09-21 2018-01-16 咪咕文化科技有限公司 一种数据压缩方法、装置及存储介质
CN108156173A (zh) * 2018-01-09 2018-06-12 江苏徐工信息技术股份有限公司 一种json数据包的动态无损压缩方法
CN109450450A (zh) * 2018-10-17 2019-03-08 杭州费尔斯通科技有限公司 一种json数据实时无损压缩以及解压方法
CN109871373A (zh) * 2019-01-31 2019-06-11 北京明略软件系统有限公司 一种数据存储方法和装置、计算机可读存储介质
CN111078652A (zh) * 2019-11-28 2020-04-28 江苏苏宁物流有限公司 物流箱码的归档压缩方法及装置
CN113269863A (zh) * 2021-07-19 2021-08-17 成都索贝视频云计算有限公司 一种基于视频图像的前景物体阴影实时生成方法
CN113342907A (zh) * 2021-06-29 2021-09-03 积成电子股份有限公司 一种用能信息采集系统台区拓扑画像绘制方法与系统
CN113658645A (zh) * 2021-08-12 2021-11-16 碳硅(杭州)生物科技有限责任公司 一种质谱数据压缩方法
CN113676734A (zh) * 2021-08-05 2021-11-19 维沃移动通信(杭州)有限公司 图像压缩方法和图像压缩装置
CN114063858A (zh) * 2021-11-26 2022-02-18 北京百度网讯科技有限公司 图像处理方法、装置、电子设备及存储介质
CN114077609A (zh) * 2022-01-19 2022-02-22 北京四维纵横数据技术有限公司 数据存储及检索方法,装置,计算机可读存储介质及电子设备

Patent Citations (15)

* Cited by examiner, † Cited by third party
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
CN104283567A (zh) * 2013-07-02 2015-01-14 北京四维图新科技股份有限公司 一种名称数据的压缩、解压缩方法及设备
US20150026189A1 (en) * 2013-07-19 2015-01-22 International Business Machines Corporation Index structure for a relational database table
US20150317327A1 (en) * 2014-04-30 2015-11-05 Microsoft Corporation Hierarchical Index Based Compression
CN107592116A (zh) * 2017-09-21 2018-01-16 咪咕文化科技有限公司 一种数据压缩方法、装置及存储介质
CN108156173A (zh) * 2018-01-09 2018-06-12 江苏徐工信息技术股份有限公司 一种json数据包的动态无损压缩方法
CN109450450A (zh) * 2018-10-17 2019-03-08 杭州费尔斯通科技有限公司 一种json数据实时无损压缩以及解压方法
CN109871373A (zh) * 2019-01-31 2019-06-11 北京明略软件系统有限公司 一种数据存储方法和装置、计算机可读存储介质
CN111078652A (zh) * 2019-11-28 2020-04-28 江苏苏宁物流有限公司 物流箱码的归档压缩方法及装置
CN113342907A (zh) * 2021-06-29 2021-09-03 积成电子股份有限公司 一种用能信息采集系统台区拓扑画像绘制方法与系统
CN113269863A (zh) * 2021-07-19 2021-08-17 成都索贝视频云计算有限公司 一种基于视频图像的前景物体阴影实时生成方法
CN113676734A (zh) * 2021-08-05 2021-11-19 维沃移动通信(杭州)有限公司 图像压缩方法和图像压缩装置
CN113658645A (zh) * 2021-08-12 2021-11-16 碳硅(杭州)生物科技有限责任公司 一种质谱数据压缩方法
CN114063858A (zh) * 2021-11-26 2022-02-18 北京百度网讯科技有限公司 图像处理方法、装置、电子设备及存储介质
CN114077609A (zh) * 2022-01-19 2022-02-22 北京四维纵横数据技术有限公司 数据存储及检索方法,装置,计算机可读存储介质及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GYAN P. TIWARY等: "Compression of XML and JSON API Responses", 《IEEE ACCESS》 *
刘凯等: "基于HNBJSON的物联网数据压缩方法", 《南京邮电大学学报(自然科学版)》 *

Also Published As

Publication number Publication date
CN114665887B (zh) 2022-09-06

Similar Documents

Publication Publication Date Title
US9223765B1 (en) Encoding and decoding data using context model grouping
US6959300B1 (en) Data compression method and apparatus
Manzini An analysis of the Burrows—Wheeler transform
Moffat et al. Arithmetic coding revisited
US8933829B2 (en) Data compression using dictionary encoding
KR20040007442A (ko) 구조화된 문서를 압축/복원하기 위한 방법
CN110518917B (zh) 基于Huffman编码的LZW数据压缩方法及系统
CN101562455A (zh) 内容可适性二元算数编码的译码装置及其译码方法
US20200294629A1 (en) Gene sequencing data compression method and decompression method, system and computer-readable medium
CN113238912B (zh) 一种网络安全日志数据的聚合处理方法
CN1737791A (zh) 一种对数据进行有限穷举优化的压缩方法
CN113300715A (zh) 一种数据处理方法、装置、硬件压缩设备以及介质
CN104125475A (zh) 一种多维量子数据压缩、解压缩方法及装置
CN114665887B (zh) 一种基于整体压缩的json字符串数据压缩方法
CN112188211A (zh) 一种转码实现方法和装置
CN116827354A (zh) 一种文件数据分布式存储管理系统
US9235610B2 (en) Short string compression
CN112506876B (zh) 一种支持sql查询的无损压缩查询方法
US9160820B2 (en) Large volume data transfer
Cheney Statistical Models for Term Compression.
CN109639285B (zh) 一种基于有限块排序压缩提高bzip2压缩算法速度的方法
Liefke et al. XMill: an E cient Compressor for XML Data
CN111510159B (zh) 遵循通用信息交换协议规范的智能编码方法及编码器
Shirazee et al. The Effects of Data Compression on Performance of Service-Oriented Architecture (SOA)
CN113037292A (zh) 结构化数据库的数据压缩方法、数据解压方法及通信设备

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