一种数据解析方法、装置及存储介质与流程

文档序号:26101465发布日期:2021-07-30 18:12阅读:54来源:国知局
一种数据解析方法、装置及存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种数据解析方法、装置及存储介质。



背景技术:

物联网是指设备与网络连接,通过信息的交换和通信实现智能化识别、定位、管理等功能。物联网平台是集成连接设备,设备信息采集入网,远程控制设备等功能的网络平台。

数据解析即按照用户制定的规则,针对物联网平台与设备之间的交互进行数据的解读。

现有的数据解析方法通常只能支持设备以单一的数据格式与物联网平台进行数据交互。但是随着物联网的发展,物联网设备交互的数据变得多样化,单一的方法解析数据已不能完全满足用户的需求。



技术实现要素:

本发明的目的是提供一种数据解析方法、装置及存储介质,通过利用设备预先上传的预设解析数据包对待解析数据进行解析处理,使得物联网平台能够兼容不同设备的数据解析,同时能够实现复杂数据类型的解析,另外,选用json(javascriptobjectnotation,js对象简谱)结构数据作为解析方法的编写基础,降低了用户编写解析方法所需要的专业知识需量,便于第三方用户(设备对应的用户)的使用。

为实现上述目的,本发明提供了如下方案:

一种数据解析方法,所述方法包括:

接收待解析数据,所述待解析数据包括设备标识;

获取所述设备标识对应的预设解析数据包,所述预设解析数据包为所述设备标识对应的设备上传的;

从所述预设解析数据包中确定与所述待解析数据对应的目标解析json数组;

基于所述目标解析json数组,对所述待解析数据进行解析处理,得到解析结果。

可选的,所述从所述预设解析数据包中确定与所述待解析数据对应的目标解析json数组,包括:

获取所述待解析数据中的策略标识;

基于所述策略标识,从所述预设解析数据包中确定对应的目标解析json数组。

可选的,所述目标解析json数组包括类型参数和解析参数,

所述基于所述目标解析json数组,对所述待解析数据进行解析处理,得到解析结果,包括:

在所述类型参数满足按位读取条件的情况下,基于所述解析参数,对所述待解析数据进行按位读取处理,得到解析结果;

在所述类型参数不满足所述按位读取条件的情况下,基于所述类型参数,确定读取类型;

根据所述读取类型和所述解析参数,对所述待解析数据进行解析处理,得到解析结果。

可选的,所述读取类型包括字符串类型,

所述在所述类型参数不满足所述按位读取条件的情况下,基于所述类型参数,确定读取类型,包括:

在所述类型参数不满足所述按位读取条件且满足字符串类型条件的情况下,所述读取类型为所述字符串类型;

在所述类型参数不满足所述按位读取条件和所述字符串类型条件的情况下,基于所述类型参数,确定读取类型。

可选的,所述在所述类型参数满足按位读取条件的情况下,基于所述解析参数,对所述待解析数据进行按位读取处理,得到解析结果,包括:

在所述类型参数满足按位读取条件的情况下,基于所述解析参数,确定读取起始位、读取位长度;

根据所述读取起始位和所述读取位长度,从所述待解析数据中读取数据并作为指定位数数据;

对所述指定位数数据进行解析处理,得到解析结果。

可选的,所述根据所述读取类型和所述解析参数,对所述待解析数据进行解析处理,得到解析结果,包括:

在读取类型为字符串类型的情况下,确定所述待解析数据的长度类型;

在所述长度类型为非动态长度类型的情况下,获取所述非动态长度类型对应的解析策略;

根据所述非动态长度类型对应的解析策略,对所述待解析数据进行解析处理,得到解析结果;

在所述长度类型为动态长度类型的情况下,基于所述解析参数,确定长度计算方法和长度参数;

基于所述长度计算方法、所述长度参数,确定读取范围;

从所述待解析数据中读取位于所述读取范围内的数据作为指定位数数据;

对所述指定位数数据进行解析处理,得到解析结果。

可选的,所述根据所述读取类型和所述解析参数,对所述待解析数据进行解析处理,得到解析结果,包括:

在所述类型参数不满足所述按位读取条件和所述字符串类型条件的情况下,获取所述读取类型对应的解析策略;

判断所述类型参数是否满足特殊值条件;

当所述类型参数满足所述特殊值条件时,进行特殊值处理,并根据所述读取类型对应的解析策略,对所述待解析数据进行解析处理,得到解析结果;

当所述类型参数不满足所述特殊值条件时,根据所述读取类型对应的解析策略,对所述待解析数据进行解析处理,得到解析结果。

可选的,所述接收待解析数据,之前还包括:

接收由设备上传的预设解析数据包;

建立所述设备对应的设备标识与所述预设解析数据包之间的映射关系,得到解析数据库。

另一方面,本发明还提供了一种数据解析装置,所述装置包括:

数据接收模块,用于接收待解析数据,所述待解析数据包括设备标识;

数据获取模块,用于获取所述设备标识对应的预设解析数据包,所述预设解析数据包为所述设备标识对应的设备上传的;

第一执行模块,用于从所述预设解析数据包中确定与所述待解析数据对应的目标解析json数组;

第二执行模块,用于基于所述目标解析json数组,对所述待解析数据进行解析处理,得到解析结果。

另一方面,本发明还提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述的数据解析方法的步骤。

本发明提供的一种数据解析方法、装置及存储介质,通过利用设备预先上传的预设解析数据包对待解析数据进行解析处理,使得物联网平台能够兼容不同设备的数据解析,同时能够实现复杂数据类型的解析,另外,选用json结构数据作为解析方法的编写基础,降低了用户编写解析方法所需要的专业知识需量,便于第三方用户(设备对应的用户)的使用。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还能够根据这些附图获得其它附图。

图1是本发明实施例提供的一种数据解析方法的流程图。

图2是本发明实施例提供的一种从所述预设解析数据包中确定与所述待解析数据对应的目标解析json数组的方法流程图。

图3是本发明实施例提供的一种基于所述目标解析json数组,对所述待解析数据进行解析处理,得到解析结果的方法流程图。

图4是本发明实施例提供的一种根据所述类型参数,确定读取类型的方法流程图。

图5是本发明实施例提供的一种根据所述读取类型和所述解析参数,对所述待解析数据进行解析处理,得到解析结果的方法流程图。

图6是本发明实施例提供的另一种根据所述读取类型和所述解析参数,对所述待解析数据进行解析处理,得到解析结果的方法流程图。

图7是本发明实施例提供的另一种根据所述读取类型和所述解析参数,对所述待解析数据进行解析处理,得到解析结果的方法流程图。

图8是本发明实施例提供的一种接收待解析数据之前的方法流程图。

图9是本发明实施例提供的一种数据解析装置的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种数据解析方法、装置及存储介质,通过利用设备预先上传的预设解析数据包对待解析数据进行解析处理,使得物联网平台能够兼容不同设备的数据解析,同时能够实现复杂数据类型的解析,另外,选用json结构数据作为解析方法的编写基础,降低了用户编写解析方法所需要的专业知识需量,便于第三方用户的使用。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

以下介绍本发明的数据解析方法的实施例,图1是本发明实施例提供的一种数据解析方法的流程图。本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。如图1所示,本实施例提供了一种数据解析方法,该方法包括:

s101.接收待解析数据,待解析数据包括设备标识。

需要说明的是待解析数据可以是二进制数据或可视化数据,其中,二进制数据可以是用于物联网平台与设备之间实现交互的数据,可视化数据可以是指将数据解析成标准json格式后,物联网平台根据第三方用户定义的物模型,在json数据中查找所定义的属性、事件、服务数据,在平台进行展示。物模型(thingspecificationlanguage,tsl),它是物理空间中的实体,如传感器、车载装置、楼宇、工厂等在云端的数字化表示,从属性、服务和事件三个维度,分别描述了该实体是什么,能做什么,可以对外提供哪些信息。设备标识可以用于唯一标识设备。另外,设备可以是物联网设备,在此不做限定。

在实际应用中,待解析数据可以是物联网设备在实际应用场景获取的数据,例如一个空调设备通过装配温度传感器和湿度传感器,获取温度和湿度的监测数据,可以将上述温度及湿度监测数据作为待解析数据。

s102.获取设备标识对应的预设解析数据包,预设解析数据包为设备标识对应的设备上传的。

其中,预设解析数据包可以是用于解析数据的解析策略的集合,预设解析数据包可以包括多个用于解析数据的json数组,json数组可以是用于将待解析数据解析为目标格式的脚本,目标格式可以是指待解析数据解析完成后的数据格式。

本说明书实施例中,可以根据设备标识与预设解析数据包之间的对应关系,获取到与待解析数据中的设备标识相对应的预设解析数据包。

s103.从预设解析数据包中确定与待解析数据对应的目标解析json数组。

在实际应用中,平台可以存储设备标识与json数组的对应关系。

在一种可能的实现方式中,s103可以通过图2的步骤实现,如图2所示,该s103可以包括:

s201.获取待解析数据中的策略标识。

其中,待解析数据中包括策略标识,策略标识可以用于识别解析该待解析数据的对应的目标解析json数组,策略标识可以是位于待解析数据中的某个指定位数上的序号,策略标识也可以是字符串等,在实际应用中,二进制数据的策略标识可以是根据物联网设备二进制数据交互协议中指定的协议序列号进行设定和获取的,可视化数据的策略标识除了如二进制数据策略标识设定方法外,还可以设定为字符串如英文字母组成的名称并存储于指定地址对应的存储空间中。

s202.基于策略标识,从预设解析数据包中确定对应的目标解析json数组。

其中,预设解析数据包中的多个json数组分别包括不同的策略标识,可以通过待解析数据的策略标识查找到与之相同的策略标识相对应的json数组即为目标解析json数组。

在一个实施例中,平台还可以策略标识与json数组排列顺序集合的对应关系,通过找到与待解析数据中的策略标识相同的json数组排列顺序集合的策略标识,从而确定与待解析数据相匹配的json数组排列顺序集合,并根据json数组排列顺序对json数组进行排列,得到的重组后的json数组即为目标解析json数组。

s104.基于目标解析json数组,对待解析数据进行解析处理,得到解析结果。

在实际应用中,将目标解析json数组作为待解析数据的解析脚本,进行解析处理,可以得到解析结果。当待解析数据为二进制数据时,根据json语句确定该待解析数据需要按位操作时,json语句中还包括有按位读取的读取起始位和读取位长度,根据读取起始位和读取位长度读取指定位数数据,按照指定存储类型和名称将二进制数据以键值对形式存储到解析结果的json中,例如指定存储类型为长整数,名称为温度;然后可以按照平台预设的物模型从解析结果json中取键值对进行可视化展示。

当待解析数据为可视化数据时,解析结果为二进制数据,解析结果可以按照读取json数组的排列顺序,对json数组解析得到的多个二进制数据按顺序写入二进制数据流中,以写成待解析数据所对应的完整的二进制数据。

其中,通过利用设备预先上传的预设解析数据包对待解析数据进行解析处理,使得不同的物联设备每次交互的数据解析方法可以灵活调用,保证了复杂数据模型的支持,另外,选用json结构数据作为解析方法的编写基础,降低了用户编写解析方法所需要的专业知识需量,便于第三方用户的使用。

在一个可能的实施方式中,所述目标解析json数组包括类型参数和解析参数,所述基于目标解析json数组,对待解析数据进行解析处理,得到解析结果,包括:

s301.在类型参数满足按位读取条件的情况下,基于解析参数,对待解析数据进行按位读取处理,得到解析结果。

其中,按位读取条件可以是阈值范围的条件,也可以是特殊值的条件,例如按位读取条件为阈值范围的条件时,当类型参数满足阈值范围内时,对待解析数据进行按位读取处理;按位读取条件为特殊值的条件时,当类型参数为某个预设值时,对待解析数据进行按位读取处理。

在实际应用中,类型参数可以包括每次读取二进制数据的顺序,长度,是否进行按位读取,读取的字段属性名称,字段类型,特殊值,可以通过json语句的键值对形式定义上述类型参数,根据目标解析json数组中的json语句内容,对二进制数据进行按顺序读取与解析。

s302.在类型参数不满足按位读取条件的情况下,基于类型参数,确定读取类型。

其中,类型参数可以用于指示待解析数据的读取类型,读取类型可以包括字符串类型或其他类型,在实际应用中,本发明支持的基本数据类型包括:位、布尔、短整数、整数、长整数、单精度、双精度;支持的无符号类型包括:无符号位、无符号短整数、无符号整数;支持字符串类型;支持按位操作类型包括:布尔、位、短整数;可以在类型参数与读取类型之间预先设置有对应关系,基于类型参数和上述预设关系,可以确定读取类型。

s303.根据读取类型和解析参数,对待解析数据进行解析处理,得到解析结果。

在实际应用中,物联网平台可以预先存储有针对不同的读取类型的各种解析脚本,解析参数可以与读取类型对应的解析脚本配合解析待解析数据,解析参数可以是第三方用户根据设备及预解析数据自行设定的,解析参数可以是数值。可以理解的是,同样的待解析数据以及同样的解析脚本,在不同的解析参数的条件下,可以得到不同的解析结果,例如,当对二进制数据进行按位读取时,解析参数中包括读取起始位和读取位长度,读取起始位和读取位长度的不同,读取得到的结果也就不同。

在一个可能的实施方式中,所述读取类型包括字符串类型,所述在类型参数不满足按位读取条件的情况下,基于类型参数,确定读取类型,包括:

s401.在类型参数不满足按位读取条件且满足字符串类型条件的情况下,所述读取类型为字符串类型。

其中,字符串类型条件可以是与其他条件不重合的条件。

s402.在类型参数不满足按位读取条件和字符串类型条件的情况下,基于类型参数,确定读取类型。

在实际应用中,在解析方法中可以通过定义读取类型的类型参数进行二进制数据与数据类型关系的定义,具体地,类型参数可以是键值对。

在一个可能的实施方式中,所述在类型参数满足按位读取条件的情况下,基于解析参数,对待解析数据进行按位读取处理,得到解析结果,包括:

s501.在类型参数满足按位读取条件的情况下,基于解析参数,确定读取起始位、读取位长度。

其中,读取起始位可以用于表征按位操作读取的起始位置,读取位长度可以用于表征按位操作读取的长度。不难理解的是,在确定读取类型为按位操作类型的情况下,目标解析json数组中的解析参数即为读取起始位和读取位长度。

s502.根据读取起始位和读取位长度,从待解析数据中读取数据并作为指定位数数据。

s503.对指定位数数据进行解析处理,得到解析结果。

在实际应用中,当待解析数据为二进制数据时,按照读取起始位和读取位长度确定的指定位数数据,对指定位数数据进行解析处理,解析得到可视化数据;当待解析数据为可视化数据时,可以先将可视化数据解析成二进制数据,然后根据读取起始位和读取位长度将二进制数据写入指定位数数据中。其中,在确认类型参数满足按位读取条件的情况下,根据解析参数确认读取的数据长度,此长度为本次按位读取数据的范围,长度单位为byte;再根据按位操作的json数组,按照json数组每一条数据的按位读取顺序进行按位读取,每次按位读取根据解析参数,确定读取起始位、读取位长度。

在一个可能的实施方式中,所述根据所述读取类型和所述解析参数,对所述待解析数据进行解析处理,得到解析结果,包括:

s601.在读取类型为字符串类型的情况下,确定待解析数据的长度类型。

其中,待解析数据的长度类型可以是通过类型参数进一步确定的,也可以是通过其他方法确定的,在此不做限定。

s602.在长度类型为非动态长度类型的情况下,获取非动态长度类型对应的解析策略。

其中,非动态长度类型以及动态长度类型对应的解析策略属于解析脚本,可以是预先存储于存储器内。

s603.根据非动态长度类型对应的解析策略,对待解析数据进行解析处理,得到解析结果。

在实际应用中,当待解析数据为二进制数据时,读取类型为非动态长度类型的待解析数据可以解析得到的解析结果为字符串;当待解析数据为可视化数据时,即读取类型为非动态长度类型的待解析数据为字符串,按照编码可以将字符串解析成二进制数据。

s604.在长度类型为动态长度类型的情况下,基于解析参数,确定长度计算方法和长度参数。

其中,在长度类型为动态长度类型的情况下,解析参数即为长度计算方法和长度参数,在实际应用中,长度计算方法可以是运算符号,例如加、减、乘和/或除,长度参数可以为参与长度运算的参数值。

s605.基于长度计算方法、长度参数,确定读取范围。

其中,通过长度计算方法和长度参数计算得出动态长度类型参数的长度,即读取范围。

s606.从待解析数据中读取位于读取范围内的数据作为指定位数数据。

s607.对指定位数数据进行解析处理,得到解析结果。

在实际应用中,当待解析数据为二进制数据时,读取类型为动态长度类型的待解析数据根据长度计算方法和长度参数计算得到的长度,可以解析得到的解析结果为字符串;当待解析数据为可视化数据时,即读取类型为非动态长度类型的待解析数据为字符串,根据长度计算方法和参数计算得到的长度,将字符串解析成定长的二进制数据。其中,二进制数据解析成字符串时,需先读取定长数据,并进行删除前置空白字节处理,否则按照编码解析成字符串时会有乱码产生;字符串解析成定长二进制数据时,也需要进行添加前置空白操作,保证长度为预定长度。

在一个可能的实施方式中,所述根据读取类型和解析参数,对待解析数据进行解析处理,得到解析结果,包括:

s701.在类型参数不满足按位读取条件和字符串类型条件的情况下,获取读取类型对应的解析策略。

其中,读取类型对应的解析策略属于解析脚本,可以是预先存储于存储器内。

s702.判断类型参数是否满足特殊值条件。

s703.当类型参数满足特殊值条件时,进行特殊值处理,并根据读取类型对应的解析策略,对待解析数据进行解析处理,得到解析结果。

在实际应用中,无符号类型和有符号类型的区别是无符号类型可以存放的正数范围比有符号整型中的范围大一倍,因为有符号类型将最高位储存符号,而无符号类型全部储存数字。比如16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535,将有符号的数据通过无符号类型并设置为特殊值,即可以在更大数据存储范围的情况下,同时可以存储到该数据的符号类型。

s704.当类型参数不满足特殊值条件时,根据读取类型对应的解析策略,对待解析数据进行解析处理,得到解析结果。

在一个可能的实施方式中,所述接收待解析数据,之前还包括:

s801.接收由设备上传的预设解析数据包。

s802.建立设备对应的设备标识与预设解析数据包之间的映射关系,得到解析数据库。

其中,解析数据库可以包括多个设备上传的预设解析数据包。

本实施例还提供了一种数据解析装置,所述装置包括:

数据接收模块10,用于接收待解析数据,所述待解析数据包括设备标识;

数据获取模块20,用于获取所述设备标识对应的预设解析数据包,所述预设解析数据包为所述设备标识对应的设备上传的;

第一执行模块30,用于从所述预设解析数据包中确定与所述待解析数据对应的目标解析json数组;

第二执行模块40,用于基于所述目标解析json数组,对所述待解析数据进行解析处理,得到解析结果。

本实施例还提供了一种计算机存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述的数据解析方法。

本实施例还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述的数据解析方法。

本发明提供的一种数据解析方法、装置及存储介质,通过利用设备预先上传的预设解析数据包对待解析数据进行解析处理,使得物联网平台能够兼容不同设备的数据解析,同时能够实现复杂数据类型的解析,另外,选用json结构数据作为解析方法的编写基础,降低了用户编写解析方法所需要的专业知识需量,便于第三方用户的使用。

要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为二系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。同样地,上述数据解析方法的各模块是指计算机程序或者程序段,用于执行某一项或多项特定的功能,此外,上述各模块的区分并不代表实际的程序代码也必须是分开的。此外,还可对上述实施例进行任意组合,得到其他的实施例。

在上述实施例中,对各实施例的描述都各有侧重,某各实施例中没有详述的部分,可以参见其它实施例的相关描述。本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogicalblock),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

上述说明已经充分揭露了本发明的具体实施方式。需要指出的是,熟悉该领域的技术人员对本发明的具体实施方式所做的任何改动均不脱离本发明的权利要求书的范围。相应地,本发明的权利要求的范围也并不仅仅局限于前述具体实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1