一种基于JSON的物联网数据压缩方法技术

技术编号:37552225 阅读:9 留言:0更新日期:2023-05-15 07:37
本发明专利技术公开了一种基于JSON的物联网数据压缩方法,属于数据压缩领域,其包括:载入压缩配置文件;读入JSON文本,经过反序列化操作获得对应的JSON对象;使用朴素贝叶斯分类器对数据进行分类;根据内容更新频次将JSON对象划分为模板对象和数据对象;判断是否更新模板对象;压缩方对数据对象进行LZSS字典压缩并发送给解压方;解压方对接收到的压缩数据进行解压和整合后获得原始数据。本发明专利技术能更大程度上压缩JSON格式的物联网数据,并且对从属于不同项目的数据有良好的适应性。目的数据有良好的适应性。目的数据有良好的适应性。

【技术实现步骤摘要】
一种基于JSON的物联网数据压缩方法


[0001]本专利技术涉及数据压缩领域,更为具体的,涉及一种基于JSON的物联网数据无损压缩方法。

技术介绍

[0002]在物联网领域,各类感知终端采集的数据具有异构性,在向上层应用提供数据时,为了屏蔽这些差异,方便服务端数据的解析和提取,采用JSON格式作为物联网终端与远端云平台之间的数据传输格式。JSON易于人阅读和编写,易于机器生成和解析,然而其本身数据重复度较高,当传输的数据量过大时导致消耗的流量和带宽资源增加,传输时间消耗增大。
[0003]现有的专用型JSON数据压缩算法主要通过数据结构的改变来实现压缩,即将原始JSON数据抽离成Template(模板)和Value(值),省掉其中重复的“Key值”,但是当JSON数据中属性太多,重复的“Key值”较少时,压缩效果并不理想。常规的压缩方法,例如Zip等,虽然也能对JSON数据起到压缩效果,但并不适合物联网终端这类处理能力受限的应用。以上提到的专用型和通用型压缩方法,均未考虑物联网应用中,相邻JSON数据报文之间存在的时间相关冗余问题,在数据压缩效率上仍存在可改进的空间。

技术实现思路

[0004]本专利技术的目的在于克服现有技术的不足,提供一种基于JSON的物联网数据压缩方法,实现JSON数据去时间和空间冗余操作,解决大体积JSON数据在传输中时效性差,消耗网络资源大的问题。
[0005]实现本专利技术目的的技术解决方案为:
[0006]一种基于JSON的物联网数据压缩方法,包括以下步骤:
[0007]步骤1、载入压缩配置文件;
[0008]步骤2、读入单条物联网JSON数据,读取前检查数据的完整性,然后经反序列化操作得到JSON对象;
[0009]步骤3、利用朴素贝叶斯分类器对JSON对象进行数据分类:求解在给定待分类项的条件下各个类别出现的概率,选取其中出现概率最大的类作为待分类项的类标签;
[0010]步骤4、将JSON对象划分为模板对象和数据对象并存储在内存中;
[0011]所述模板对象包括源JSON对象中的Key值、连接符、以及代表Value值类型的标识符;
[0012]所述数据对象仅包括源JSON对象中的Value值,对于字符串类型的Value值,省略其两侧“"”,相邻Value值之间由逗号隔开;
[0013]步骤5、判断本地是否已存在模板对象并且已有模板对象与步骤4新划分的模板对象内容是否一致;若是,执行步骤6,否则,将压缩方和解压方的模板对象更新为步骤4新划分的模板对象之后再执行步骤6;
[0014]步骤6、对步骤4划分的数据对象进行LZSS压缩,将生成的二进制压缩数据发送给解压方;
[0015]步骤7、解压方对接收到的二进制压缩数据进行LZSS解压;
[0016]步骤8、将解压后的各Value值依次填充到模板对象中得到源JSON数据,Value值的数据类型可根据模板对象中标识符与数据类型的映射关系推出。
[0017]本专利技术与现有技术相比,其显著优点是:
[0018](1)本专利技术将数据分类机制引入数据压缩过程,克服了传统LZSS字典压缩方法滑动窗口的大小不能根据压缩内容变化的缺点,使得本方法针对从属于不同项目的JSON数据能够始终保持一个较高的压缩比。
[0019](2)本专利技术考虑到了物联网环境下,相邻JSON数据报文中存在的时间相关冗余问题,利用JSON数据中不同部分随时间更新频次不同这一特点将源数据划分为数据对象和模板对象,通过在压缩方和解压方维护一个相对稳定的模板对象,仅对更新频繁的数据对象进行改进的LZSS字典压缩和传输,从整体上减少了数据压缩和传输的总量,进一步提升压缩率,同时减小计算量。
附图说明
[0020]图1为本专利技术数据压缩传输模型图;
[0021]图2为本专利技术朴素贝叶斯分类器的执行步骤图;
[0022]图3为本专利技术LZSS压缩编码过程示意图;
[0023]图4为本专利技术物联网JSON数据划分过程示意图;
具体实施方式
[0024]下面结合附图及具体实施例对本专利技术做进一步的介绍。
[0025]结合图1,本专利技术的一种基于JSON的物联网数据压缩方法,包括以下步骤:
[0026]步骤1、载入压缩配置文件,该配置文件描述了不同类型JSON数据对应的最优滑动窗口,其数值可通过实际测试得到,即分别用窗口大小不同的LZSS压缩算法对同一类型数据进行压缩,取最先达到高压缩比的滑动窗作为最优滑动窗。
[0027]步骤2、读入单条物联网JSON数据,读取前检查数据的完整性,然后经反序列化操作得到JSON对象。
[0028]步骤3、利用朴素贝叶斯分类器对JSON对象进行数据分类。朴素贝叶斯分类器是基于贝叶斯定理与特征条件独立假设的分类方法,其基本思想是求解在给定待分类项的条件下各个类别出现的概率,选取其中出现概率最大的类作为待分类项的类标签。具体数学模型如下式:
[0029][0030]其中y是分类类别,C是y的取值集合,P(y)表示某一类别出现的概率,n为特征数目,x
i
为待分类项x在第i个特征上的取值,P(x
i
|y)为某一类别下待分类项各个特征属性的条件概率估计,y
Naive
为待分类项与分类类别的映射关系,即贝叶斯分类器对于给定的待分类项x,最可能的类别y。
[0031]使用朴素贝叶斯分类器对数据进行分类的基本流程如图2所示,具体的实施步骤如下:
[0032](1)选定数据的特征(本实施例中将关键词作为数据特征),对每个特征属性进行划分,然后由人工对一部分待分类项目进行分类,形成训练集;
[0033](2)统计训练集中各类别出现的概率P(y)及各类别下各个特征属性的条件概率P(x
i
|y),并记录结果;
[0034](3)利用步骤(2)所获结果,计算在给定待分类项x的情况下,分类概率与特征概率的乘积,即计算的值,取使乘积最大的类y作为待分类项的类标签;
[0035]步骤4、将JSON对象划分为模板对象和数据对象并存储在内存中。对源JSON对象进行划分的依据是JSON数据中不同部分随时间更新的频率是不一致的,例如,Key值较Value值更新的频次要少的多,若抽取源JSON中更新频次低的内容为模板对象,同时在解压方和压缩方维护这一模板对象,只对更新频繁的数据对象进行压缩传输,可在总体上减少数据压缩和和传输总量,提高压缩效率。对源JSON对象进行数据划分的过程如图3所示;
[0036]所述模板对象包括源JSON对象中的Key值、连接符、以及代表Value值类型的标识符,本实施例使用的JSON数据类型与标识符的映射关系为:数字—

N

、字符串—

S

、逻辑值—

L

、空值—...

【技术保护点】

【技术特征摘要】
1.一种基于JSON的物联网数据压缩方法,其特征在于,包括以下步骤:步骤1、载入压缩配置文件;步骤2、读入单条物联网JSON数据,读取前检查数据的完整性,然后经反序列化操作得到JSON对象;步骤3、利用朴素贝叶斯分类器对JSON对象进行数据分类:求解在给定待分类项的条件下各个类别出现的概率,选取其中出现概率最大的类作为待分类项的类标签;步骤4、将JSON对象划分为模板对象和数据对象并存储在内存中;所述模板对象包括源JSON对象中的Key值、连接符、以及代表Value值类型的标识符;所述数据对象仅包括源JSON对象中的Value值,对于字符串类型的Value值,省略其两侧“"”,相邻Value值之间由逗号隔开;步骤5、判断本地是否已存在模板对象并且已有模板对象与步骤4新划分的模板对象内容是否一致;若是,执行步骤6,否则,将压缩方和解压方的模板对象更新为步骤4新划分的模板对象之后再执行步骤6;步骤6、对步骤4划分的数据对象进行LZSS压缩,将生成的二进制压缩数据发送给解压方;步骤7、解压方对接收到的二进制压缩数据进行LZSS解压;步骤8、将解压后的各Value值依次填充到模板对象中得到源JSON数据,Value值的数据类型可根据模板对象中标识符与数据类型的映射关系推出。2.根据...

【专利技术属性】
技术研发人员:陆宝春叶绍鹏翁朝阳盛国良
申请(专利权)人:南京理工大学
类型:发明
国别省市:

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

1