CN115291793A - 属性数据的转换方法和装置、存储介质及电子装置 - Google Patents
属性数据的转换方法和装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN115291793A CN115291793A CN202210753862.6A CN202210753862A CN115291793A CN 115291793 A CN115291793 A CN 115291793A CN 202210753862 A CN202210753862 A CN 202210753862A CN 115291793 A CN115291793 A CN 115291793A
- Authority
- CN
- China
- Prior art keywords
- attribute
- attributes
- target
- data
- attribute data
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
Abstract
本申请公开了一种属性数据的转换方法和装置、存储介质及电子装置,涉及智慧家庭技术领域,该属性数据的转换方法包括:获取用于指示智能设备的多个第一属性的第一属性数据,其中,属性数据包括:多个第一属性分别对应的多个第一属性名和以及多个第一属性分别对应的多个第一属性值;获取智能设备的属性元数据,其中,属性元数据包括:预先设置的智能设备的多个第二属性分别对应的多个第二属性名、多个第二属性分别对应的多个属性顺序号和多个第二属性分别对应的多个属性值类型;根据属性元数据将第一属性数据转换为目标属性数据,其中,目标属性数据包括:多个第一属性分别对应的多个目标属性值。
Description
技术领域
本申请涉及通信领域,具体而言,涉及一种属性数据的转换方法和装置、存储介质及电子装置。
背景技术
在物联网领域,联网的设备类型很多,如电视,冰箱,空调等,而且每类设备还有若干细分类型,这些不同类型的设备因为内置传感器的差异,上报的属性数据中包含该设备的类型标识和若干对应的传感器属性值对,考虑到内置传感器的差异,此类属性数据一般采用json map格式来描述其属性的属性名和属性值,如:
{"refrigeratorDoorStatus":"false","envTemperature":"29","freezerTemperatureC":"-18"};
表示该设备上报的3个属性值对,每个属性值对都包含一个属性名(可以理解为key)和一个属性值(可以理解为value)。物联网的云端应用通过记录和分析这些属性数据来实现特定的业务。
对于一个具体细分类型的设备来说,其内部的传感器是确定不变的,所以这些属性数据中的属性名都是固定不变的,变化的只是属性值。如果每一条上报属性数据都包含属性的属性名的话,这就会带来大量额外的带宽和存储负担。
针对相关技术中,设备在进行属性数据上报时,不利于网络传输和存储,浪费大量带宽和存储资源,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种属性数据的转换方法和装置、存储介质及电子装置,以至少解决相关技术中,设备在进行属性数据上报时,不利于网络传输和存储,浪费大量带宽和存储资源。
根据本申请实施例的一个实施例,提供了一种属性数据的转换方法,包括:获取用于指示智能设备的多个第一属性的第一属性数据,其中,所述属性数据包括:所述多个第一属性分别对应的多个第一属性名和以及所述多个第一属性分别对应的多个第一属性值;获取所述智能设备的属性元数据,其中,所述属性元数据包括:预先设置的所述智能设备的多个第二属性分别对应的多个第二属性名、所述多个第二属性分别对应的多个属性顺序号和所述多个第二属性分别对应的多个属性值类型;根据所述属性元数据将所述第一属性数据转换为目标属性数据,其中,所述目标属性数据包括:所述多个第一属性分别对应的多个目标属性值。
在一个示例性实施例中,根据所述属性元数据将所述第一属性数据转换为目标属性数据的过程中,包括:第一转换步骤:根据所述属性元数据确定任一第一属性对应的属性值类型,并根据所述任一第一属性对应的属性值类型将所述任一第一属性对应的第一属性值转换为目标属性值;循环执行所述第一转换步骤,将所述多个第一属性中的每一个第一属性对应的第一属性值转换为目标属性值,以获取所述多个第一属性分别对应的多个目标属性值。
在一个示例性实施例中,根据所述属性元数据将所述第一属性数据转换为目标属性数据,包括:根据所述属性元数据确定所述每一个第一属性的属性顺序号;确定所述智能设备对应的属性模板;根据所述每一个第一属性的属性顺序号将所述每一个第一属性的目标属性值写入所述属性模板对应的字段,以得到目标属性数据,其中,相邻的两个目标属性值之间包括:分隔符,所述字段的字段号与所述属性顺序号相同。
在一个示例性实施例中,根据所述每一个第一属性的属性顺序号将所述每一个第一属性的目标属性值写入所述属性模板对应的字段,以得到目标属性数据,包括:确定所述属性模板中的所有字段是否均存在所述目标属性值;在确定所述所有字段中任一字段中不存在所述目标属性值的情况下,在所述任一字段写入空值。
在一个示例性实施例中,根据所述属性元数据将所述第一属性数据转换为目标属性数据之前,所述方法还包括:确定所述多个第一属性名中的任一第一属性名与所述多个第二属性名中的任一第二属性名是否一致;
在所述任一第一属性名与所述任一第二目标属性名不一致的情况下,禁止对所述任一第一属性名对应的属性值进行转换。
在一个示例性实施例中,根据所述属性元数据将所述第一属性数据转换为目标属性数据之后,所述方法还包括:
在确定对所述目标属性数据进行解码的情况下,根据所述属性元数据和所述目标属性数据确定所述多个第一属性中的每一个第一属性对应的第一属性名、所述每一个第一属性对应的第一属性值类型;根据所述每一个第一属性对应的第一属性名、所述每一个第一属性对应的第一属性值类型将所述目标属性数据转换为所述第一属性数据。
在一个示例性实施例中,根据所述每一个第一属性对应的第一属性名、所述每一个第一属性对应的第一属性值类型将所述目标属性数据转换为所述第一属性数据,包括:第二转换步骤:根据多个第一属性中的任一第一属性对应的第一属性值类型将所述任一第一属性对应的目标属性值转换为所述第一属性值,将所述任一第一属性对应的第一属性名写入所述第一属性值之前;循环执行所述第二转换步骤,直至将每一个第一属性对应的目标属性值转换为第一属性值,并将所述每一个第一属性对应的第一属性名写入所述第一属性值之前,以获取所述第一属性数据。
根据本申请实施例的另一个实施例,还提供了一种属性数据的转换装置,包括:第一获取模块,用于获取用于指示智能设备的多个第一属性的第一属性数据,其中,所述属性数据包括:所述多个第一属性分别对应的多个第一属性名和以及所述多个第一属性分别对应的多个第一属性值;第二获取模块,用于获取所述智能设备的属性元数据,其中,所述属性元数据包括:预先设置的所述智能设备的多个第二属性分别对应的多个第二属性名、所述多个第二属性分别对应的多个属性顺序号和所述多个第二属性分别对应的多个属性值类型;转换模块,用于根据所述属性元数据将所述第一属性数据转换为目标属性数据,其中,所述目标属性数据包括:所述多个第一属性分别对应的多个目标属性值。
根据本申请实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述属性数据的转换方法。
根据本申请实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的属性数据的转换方法。
在本申请实施例中,获取用于指示智能设备的多个第一属性的第一属性数据,其中,所述属性数据包括:所述多个第一属性分别对应的多个第一属性名和以及所述多个第一属性分别对应的多个第一属性值;获取所述智能设备的属性元数据,其中,所述属性元数据包括:预先设置的所述智能设备的多个第二属性分别对应的多个第二属性名、所述多个第二属性分别对应的多个属性顺序号和所述多个第二属性分别对应的多个属性值类型;根据所述属性元数据将所述第一属性数据转换为目标属性数据,其中,所述目标属性数据包括:所述多个第一属性分别对应的多个目标属性值;采用上述技术方案,解决了设备在进行属性数据上报时,不利于网络传输和存储,浪费大量带宽和存储资源,进而在本申请实施例中的目标属性数据中包括多个目标属性值,去掉了每个属性中的属性名后,从复杂的jsonmap格式转换为简单的字符串拼接格式,减少了数据量,进而大大降低对网络和存储的要求,以及更加节约带宽和存储资源。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例的一种属性数据的转换方法的硬件环境示意图;
图2是根据本申请实施例的属性数据的转换方法的流程图;
图3是根据本申请实施例的属性数据的转换方法的示意图(一);
图4是根据本申请实施例的属性数据的转换方法的示意图(二);
图5是根据本申请实施例的一种属性数据的转换装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一个方面,提供了一种属性数据的转换方法。该属性数据的转换方法广泛应用于智慧家庭(Smart Home)、智能家居、智能家用设备生态、智慧住宅(Intelligence House)生态等全屋智能数字化控制应用场景。可选地,在本实施例中,上述属性数据的转换方法可以应用于如图1所示的由终端设备102和服务器104所构成的硬件环境中。如图1所示,服务器104通过网络与终端设备102进行连接,可用于为终端或终端上安装的客户端提供服务(如应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器104提供数据存储服务,可在服务器上或独立于服务器配置云计算和/或边缘计算服务,用于为服务器104提供数据运算服务。
上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:WIFI(Wireless Fidelity,无线保真),蓝牙。终端设备102可以并不限定于为PC、手机、平板电脑、智能空调、智能烟机、智能冰箱、智能烤箱、智能炉灶、智能洗衣机、智能热水器、智能洗涤设备、智能洗碗机、智能投影设备、智能电视、智能晾衣架、智能窗帘、智能影音、智能插座、智能音响、智能音箱、智能新风设备、智能厨卫设备、智能卫浴设备、智能扫地机器人、智能擦窗机器人、智能拖地机器人、智能空气净化设备、智能蒸箱、智能微波炉、智能厨宝、智能净化器、智能饮水机、智能门锁等。
在本实施例中提供了一种属性数据的转换方法,应用于计算机终端,图2是根据本申请实施例的属性数据的转换方法的流程图,该流程包括如下步骤:
步骤S202,获取用于指示智能设备的多个第一属性的第一属性数据,其中,所述属性数据包括:所述多个第一属性分别对应的多个第一属性名和以及所述多个第一属性分别对应的多个第一属性值;
举例来讲,在第一属性数据为:
{"refrigeratorDoorStatus":"false","envTemperature":"29","freezerTemperatureC":"-18"}的情况下,"refrigeratorDoorStatus"、"envTemperature"、"freezerTemperatureC"为多个第一属性分别对应的多个第一属性名;"false"、"29"、"-18"为所述多个第一属性分别对应的多个第一属性值,需要说明的是,本申请实施例对第一属性数据的具体含义不作限定。
步骤S204,获取所述智能设备的属性元数据,其中,所述属性元数据包括:预先设置的所述智能设备的多个第二属性分别对应的多个第二属性名、所述多个第二属性分别对应的多个属性顺序号和所述多个第二属性分别对应的多个属性值类型;
步骤S206,根据所述属性元数据将所述第一属性数据转换为目标属性数据,其中,所述目标属性数据包括:所述多个第一属性分别对应的多个目标属性值。
通过上述步骤,获取用于指示智能设备的多个第一属性的第一属性数据,其中,所述属性数据包括:所述多个第一属性分别对应的多个第一属性名和以及所述多个第一属性分别对应的多个第一属性值;获取所述智能设备的属性元数据,其中,所述属性元数据包括:预先设置的所述智能设备的多个第二属性分别对应的多个第二属性名、所述多个第二属性分别对应的多个属性顺序号和所述多个第二属性分别对应的多个属性值类型;根据所述属性元数据将所述第一属性数据转换为目标属性数据,其中,所述目标属性数据包括:所述多个第一属性分别对应的多个目标属性值,解决了相关技术中,设备在进行属性数据上报时,不利于网络传输和存储,浪费大量带宽和存储资源,进而在本申请实施例中的目标属性数据中包括多个目标属性值,去掉了每个属性中的属性名后,从复杂的json map格式转换为简单的字符串拼接格式,减少了数据量,进而大大降低对网络和存储的要求,以及更加节约带宽和存储资源。
在一个示例性实施例中,根据所述属性元数据将所述第一属性数据转换为目标属性数据的过程中,包括:第一转换步骤:根据所述属性元数据确定任一第一属性对应的属性值类型,并根据所述任一第一属性对应的属性值类型将所述任一第一属性对应的第一属性值转换为目标属性值;循环执行所述第一转换步骤,将所述多个第一属性中的每一个第一属性对应的第一属性值转换为目标属性值,以获取所述多个第一属性分别对应的多个目标属性值。
具体的,根据第一属性名在属性元数据中确定与第一属性名一致的第二属性名,以及根据所述第二属性名对应的属性值类型,根据所述属性值类型将第一属性值转化为目标属性值,直至将所有的第一属性的第一属性值转换为目标属性值。
具体的,属性值类型包括但不限于:字符串型、布尔型、数字型,举例来讲,在第一属性数据为:
{"refrigeratorDoorStatus":"false","envTemperature":"29","freezerTemperatureC":"-18"}的情况下,且"refrigeratorDoorStatus"对应的属性值类型为布尔型、"envTemperature"对应的属性值类型为数字型、"freezerTemperatureC"对应的属性值类型为数字型的情况下,将"false"转换为"0"或"1",将"29"转换为"29",将"-18"转换为"-18"。
在一个示例性实施例中,根据所述属性元数据将所述第一属性数据转换为目标属性数据,包括:根据所述属性元数据确定所述每一个第一属性的属性顺序号,以及确定所述智能设备对应的属性模板;根据所述每一个第一属性的属性顺序号将所述每一个第一属性的目标属性值写入所述属性模板对应的字段,以得到目标属性数据,其中,相邻的两个目标属性值之间包括:分隔符,所述字段的字段号与所述属性顺序号相同。
由于根据属性元数据可以确定每一个第一属性的属性顺序号,因此按照所述每一个第一属性的属性顺序号,然后把每一个第一属性的目标属性值依照其属性顺序号用分隔符(如:)拼接起来,以得到目标属性数据。
举例来讲,在第一属性数据为:
{"refrigeratorDoorStatus":"false","envTemperature":"29","freezerTemperatureC":"-18"}的情况下,且"refrigeratorDoorStatus"对应的属性值类型为布尔型、属性顺序号为0;"envTemperature"对应的属性值类型为数字型、属性顺序号为2;"freezerTemperatureC"对应的属性值类型为数字型、属性顺序号为1的情况下,将"false"转换为"0"或"1",将"29"转换为"29",将"-18"转换为"-18",目标属性数据为:{"0":"-18":"29"}。
在一个示例性实施例中,根据所述每一个第一属性的属性顺序号将所述每一个第一属性的目标属性值写入所述属性模板对应的字段,以得到目标属性数据,包括:确定所述属性模板中的所有字段是否均存在所述目标属性值;在确定所述所有字段中任一字段中不存在所述目标属性值的情况下,在所述任一字段写入空值。
可以理解为,如果智能设备实际上报的传感器属性值比定义的要少,只需要将该属性所在位置填空,进而可以不影响整条属性数据的编解码。也就是说,在属性元数据中定义了三个传感器属性,而只能设备仅上报了两个传感器属性的情况下,仅需将缺少的传感器属性对应的位置填空,例如,填入null。
在一个示例性实施例中,根据所述属性元数据将所述第一属性数据转换为目标属性数据之前,还包括:确定所述多个第一属性名中的任一第一属性名与所述多个第二属性名中的任一第二属性名是否一致;在所述任一第一属性名与所述任一第二目标属性名不一致的情况下,禁止对所述任一第一属性名对应的属性值进行转换。
可以理解为,如果智能设备实际上报的传感器属性值比定义的要多,只需将多出的传感器属性值按照原来的格式进行上报,不必对所述任一第一属性名对应的属性值进行转换,进而可以不影响整条属性数据的编解码。
在一个示例性实施例中,根据所述属性元数据将所述第一属性数据转换为目标属性数据之后,还包括:在确定对所述目标属性数据进行解码的情况下,根据所述属性元数据和所述目标属性数据确定所述多个第一属性中的每一个第一属性对应的第一属性名、所述每一个第一属性对应的第一属性值类型;根据所述每一个第一属性对应的第一属性名、所述每一个第一属性对应的第一属性值类型将所述目标属性数据转换为所述第一属性数据。
也就是说,在需要对目标属性数据进行解码的情况下,根据目标属性数据的顺序序号确定多个第一属性中的每一个第一属性对应的第一属性名、所述每一个第一属性对应的第一属性值类型,根据所述属性值类型将目标属性值转化为第一属性值,直至将所有的第一属性的目标属性值转化为第一属性值。
在一个示例性实施例中,根据所述每一个第一属性对应的第一属性名、所述每一个第一属性对应的第一属性值类型将所述目标属性数据转换为所述第一属性数据,包括:第二转换步骤:根据多个第一属性中的任一第一属性对应的第一属性值类型将所述任一第一属性对应的目标属性值转换为所述第一属性值,将所述任一第一属性对应的第一属性名写入所述第一属性值之前;循环执行所述第二转换步骤,直至将每一个第一属性对应的目标属性值转换为第一属性值,并将所述每一个第一属性对应的第一属性名写入所述第一属性值之前,以获取所述第一属性数据。
举例来讲,根据属性值的位置顺序找到对应的属性名和属性值类型,如第0位为refrigeratorDoorStatus,第1位为freezerTemperatureC,第2位为envTemperature,这样就能把属性名和属性值对应起来,同时把布尔类型值做对应转换,这样就可以还原回属性值对json map信息:
{"refrigeratorDoorStatus":"false","freezerTemperatureC":"-18","envTemperature":"29"}。
为了更好的理解上述属性数据的转换方法的过程,以下再结合可选实施例对上述属性数据的转换的实现方法流程进行说明,但不用于限定本申请实施例的技术方案。
在本实施例中提供了一种属性数据的转换方法,图3是根据本申请实施例的属性数据的转换方法的示意图(一),如图3所示,基于物联网设备类型下的传感器属性确定性的前提下,把相关设备类型下的所有传感器属性名,属性值类型,位置信息作为元数据保存到数据库中,作为对设备上报属性数据编码和解码的依据。进而减少了物联网属性数据的长度,减少网络传输和存储空间占用。
具体的属性数据编码和解码步骤如下:
步骤S1:为每类智能设备定义一份属性元数据,并将属性元数据持久化存储在mysql数据库中,其中,属性元数据具体包含以下信息:
a)设备类型标识:typeId,需要说明的是,typeId下的所有设备都有相同的传感器属性。
b)整理每类智能设备的所有传感器属性名的有序列表以及其属性值类型,属性值类型包括但不限于:字符串,布尔,数字。属性元数据的表结构如表1所示:
表1
步骤S2:编码过程;
a)接收设备上报的属性数据,属性数据包括:属性key和value值对(相当于上述实施例中的所述多个第一属性分别对应的多个第一属性名和以及所述多个第一属性分别对应的多个第一属性值),如:
{"refrigeratorDoorStatus":"false","envTemperature":"29","freezerTemperatureC":"high"}这3个属性的key和value。
b)根据设备上报的属性数据中的其类型标识:typeId从属性元数据库中得到其所有的属性的key(attrb_key)、属性值类型(attrb_type)和顺序号(seqNo)。如表2所示:
表2
seqNo | attrb_key | attrb_type |
0 | refrigeratorDoorStatus | 1 |
1 | freezerTemperatureC | 0 |
2 | envTemperature | 2 |
c)将元数据信息(属性的key、属性值类型和顺序号)加载至内存,采用hashmap结构存储,根据属性名就可以快速查询到其位置序号信息,如refrigeratorDoorStatus为第0位,freezerTemperatureC为第1位,envTemperature为第2位,然后把各自的属性值依照其位置用分隔符(如:)拼接起来。
如图4所示,即把
{"refrigeratorDoorStatus":"false","envTemperature":"29","freezerTemperatureC":"high"}转换为:"false:high:29",长度从85减少到了13,大小减少了75%,更进一步,由于确定了属性的属性值类型,可以把布尔类型的值进一步简化:用0来表示false,1来表示true,这样就进一步减少记录长度为9,比原始长度减少了90%。
步骤S3:解码过程。
a)接收到编码后的属性数据,如:"0:high:29"以及类型typeId值,根据其typeId从属性元数据库中得到其所有的属性的key(attrb_key)、属性值类型(attrb_type)和顺序号(seqNo)。如:
seqNo | attrb_key | attrb_type |
0 | refrigeratorDoorStatus | 1 |
1 | freezerTemperatureC | 0 |
2 | envTemperature | 2 |
解码前把这些信息按顺序加载到一个List中,根据属性值的位置顺序找到对应的属性key和属性值类型,如第0位为refrigeratorDoorStatus,第1位为freezerTemperatureC,第2位为envTemperature,把属性key和value对应起来,同时把布尔类型值做对应转换,进而还原回属性值对应的json map信息:
{"refrigeratorDoorStatus":"false","freezerTemperatureC":"high","envTemperature":"29"}。
根据本申请的实施例,可以达到以下技术效果:
1)消息长度大幅减少:去掉了每条记录中的属性名后,从复杂的json map格式转换为简单的字符串拼接格式,大小减少为原始大小的10%左右,大大降低对网络和存储的要求。
2)编码/解码性能高:编码/解码前先把对应设备类型的属性元数据加载到内存中,查找性能高。
3)通用性好:可以同时支持多种设备类型的属性数据编解码。
4)兼容性好:如果某类设备实际上报的传感器属性值比定义的要少,也不影响整条数据编解码,只是该属性所在位置填空。如果某类设备实际上报的传感器属性值比定义的要多,也不影响整条数据编解码,只是丢弃此属性值。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
图5是根据本申请实施例的一种属性数据的转换装置的结构框图;如图5所示,包括:
第一获取模块52,用于获取用于指示智能设备的多个第一属性的第一属性数据,其中,所述属性数据包括:所述多个第一属性分别对应的多个第一属性名和以及所述多个第一属性分别对应的多个第一属性值;
第二获取模块54,用于获取所述智能设备的属性元数据,其中,所述属性元数据包括:预先设置的所述智能设备的多个第二属性分别对应的多个第二属性名、所述多个第二属性分别对应的多个属性顺序号和所述多个第二属性分别对应的多个属性值类型;
转换模块56,用于根据所述属性元数据将所述第一属性数据转换为目标属性数据,其中,所述目标属性数据包括:所述多个第一属性分别对应的多个目标属性值。
通过上述装置,获取用于指示智能设备的多个第一属性的第一属性数据,其中,所述属性数据包括:所述多个第一属性分别对应的多个第一属性名和以及所述多个第一属性分别对应的多个第一属性值;获取所述智能设备的属性元数据,其中,所述属性元数据包括:预先设置的所述智能设备的多个第二属性分别对应的多个第二属性名、所述多个第二属性分别对应的多个属性顺序号和所述多个第二属性分别对应的多个属性值类型;根据所述属性元数据将所述第一属性数据转换为目标属性数据,其中,所述目标属性数据包括:所述多个第一属性分别对应的多个目标属性值,解决了相关技术中,设备在进行属性数据上报时,不利于网络传输和存储,浪费大量带宽和存储资源,进而在本申请实施例中的目标属性数据中包括多个目标属性值,去掉了每个属性中的属性名后,从复杂的json map格式转换为简单的字符串拼接格式,减少了数据量,进而大大降低对网络和存储的要求,以及更加节约带宽和存储资源。
在一个示例性实施例中,转换模块56,用于执行第一转换步骤:根据所述属性元数据确定任一第一属性对应的属性值类型,并根据所述任一第一属性对应的属性值类型将所述任一第一属性对应的第一属性值转换为目标属性值;循环执行所述第一转换步骤,将所述多个第一属性中的每一个第一属性对应的第一属性值转换为目标属性值,以获取所述多个第一属性分别对应的多个目标属性值。
在一个示例性实施例中,转换模块56,用于根据所述属性元数据确定所述每一个第一属性的属性顺序号;确定所述智能设备对应的属性模板;根据所述每一个第一属性的属性顺序号将所述每一个第一属性的目标属性值写入所述属性模板对应的字段,以得到目标属性数据,其中,相邻的两个目标属性值之间包括:分隔符,所述字段的字段号与所述属性顺序号相同。
在一个示例性实施例中,转换模块56,用于确定所述属性模板中的所有字段是否均存在所述目标属性值;在确定所述所有字段中任一字段中不存在所述目标属性值的情况下,在所述任一字段写入空值。
在一个示例性实施例中,转换模块56,用于确定所述多个第一属性名中的任一第一属性名与所述多个第二属性名中的任一第二属性名是否一致;在所述任一第一属性名与所述任一第二目标属性名不一致的情况下,禁止对所述任一第一属性名对应的属性值进行转换。
在一个示例性实施例中,转换模块56,用于在确定对所述目标属性数据进行解码的情况下,根据所述属性元数据和所述目标属性数据确定所述多个第一属性中的每一个第一属性对应的第一属性名、所述每一个第一属性对应的第一属性值类型;根据所述每一个第一属性对应的第一属性名、所述每一个第一属性对应的第一属性值类型将所述目标属性数据转换为所述第一属性数据。
在一个示例性实施例中,转换模块56,还用于执行第二转换步骤:根据多个第一属性中的任一第一属性对应的第一属性值类型将所述任一第一属性对应的目标属性值转换为所述第一属性值,将所述任一第一属性对应的第一属性名写入所述第一属性值之前;循环执行所述第二转换步骤,直至将每一个第一属性对应的目标属性值转换为第一属性值,并将所述每一个第一属性对应的第一属性名写入所述第一属性值之前,以获取所述第一属性数据。
本申请的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,获取用于指示智能设备的多个第一属性的第一属性数据,其中,所述属性数据包括:所述多个第一属性分别对应的多个第一属性名和以及所述多个第一属性分别对应的多个第一属性值;
S2,获取所述智能设备的属性元数据,其中,所述属性元数据包括:预先设置的所述智能设备的多个第二属性分别对应的多个第二属性名、所述多个第二属性分别对应的多个属性顺序号和所述多个第二属性分别对应的多个属性值类型;
S3,根据所述属性元数据将所述第一属性数据转换为目标属性数据,其中,所述目标属性数据包括:所述多个第一属性分别对应的多个目标属性值。
本申请的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取用于指示智能设备的多个第一属性的第一属性数据,其中,所述属性数据包括:所述多个第一属性分别对应的多个第一属性名和以及所述多个第一属性分别对应的多个第一属性值;
S2,获取所述智能设备的属性元数据,其中,所述属性元数据包括:预先设置的所述智能设备的多个第二属性分别对应的多个第二属性名、所述多个第二属性分别对应的多个属性顺序号和所述多个第二属性分别对应的多个属性值类型;
S3,根据所述属性元数据将所述第一属性数据转换为目标属性数据,其中,所述目标属性数据包括:所述多个第一属性分别对应的多个目标属性值。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种属性数据的转换方法,其特征在于,包括:
获取用于指示智能设备的多个第一属性的第一属性数据,其中,所述属性数据包括:所述多个第一属性分别对应的多个第一属性名和以及所述多个第一属性分别对应的多个第一属性值;
获取所述智能设备的属性元数据,其中,所述属性元数据包括:预先设置的所述智能设备的多个第二属性分别对应的多个第二属性名、所述多个第二属性分别对应的多个属性顺序号和所述多个第二属性分别对应的多个属性值类型;
根据所述属性元数据将所述第一属性数据转换为目标属性数据,其中,所述目标属性数据包括:所述多个第一属性分别对应的多个目标属性值。
2.根据权利要求1所述的属性数据的转换方法,其特征在于,根据所述属性元数据将所述第一属性数据转换为目标属性数据的过程中,包括:
第一转换步骤:根据所述属性元数据确定任一第一属性对应的属性值类型,并根据所述任一第一属性对应的属性值类型将所述任一第一属性对应的第一属性值转换为目标属性值;
循环执行所述第一转换步骤,将所述多个第一属性中的每一个第一属性对应的第一属性值转换为目标属性值,以获取所述多个第一属性分别对应的多个目标属性值。
3.根据权利要求2所述的属性数据的转换方法,其特征在于,根据所述属性元数据将所述第一属性数据转换为目标属性数据,包括:
根据所述属性元数据确定所述每一个第一属性的属性顺序号;
确定所述智能设备对应的属性模板;
根据所述每一个第一属性的属性顺序号将所述每一个第一属性的目标属性值写入所述属性模板对应的字段,以得到目标属性数据,其中,相邻的两个目标属性值之间包括:分隔符,所述字段的字段号与所述属性顺序号相同。
4.根据权利要求3所述的属性数据的转换方法,其特征在于,根据所述每一个第一属性的属性顺序号将所述每一个第一属性的目标属性值写入所述属性模板对应的字段,以得到目标属性数据,包括:
确定所述属性模板中的所有字段是否均存在所述目标属性值;
在确定所述所有字段中任一字段中不存在所述目标属性值的情况下,在所述任一字段写入空值。
5.根据权利要求1所述的属性数据的转换方法,其特征在于,根据所述属性元数据将所述第一属性数据转换为目标属性数据之前,所述方法还包括:
确定所述多个第一属性名中的任一第一属性名与所述多个第二属性名中的任一第二属性名是否一致;
在所述任一第一属性名与所述任一第二目标属性名不一致的情况下,禁止对所述任一第一属性名对应的属性值进行转换。
6.根据权利要求1所述的属性数据的转换方法,其特征在于,根据所述属性元数据将所述第一属性数据转换为目标属性数据之后,所述方法还包括:
在确定对所述目标属性数据进行解码的情况下,根据所述属性元数据和所述目标属性数据确定所述多个第一属性中的每一个第一属性对应的第一属性名、所述每一个第一属性对应的第一属性值类型;
根据所述每一个第一属性对应的第一属性名、所述每一个第一属性对应的第一属性值类型将所述目标属性数据转换为所述第一属性数据。
7.根据权利要求1所述的属性数据的转换方法,其特征在于,根据所述每一个第一属性对应的第一属性名、所述每一个第一属性对应的第一属性值类型将所述目标属性数据转换为所述第一属性数据,包括:
第二转换步骤:根据多个第一属性中的任一第一属性对应的第一属性值类型将所述任一第一属性对应的目标属性值转换为所述第一属性值,将所述任一第一属性对应的第一属性名写入所述第一属性值之前;
循环执行所述第二转换步骤,直至将每一个第一属性对应的目标属性值转换为第一属性值,并将所述每一个第一属性对应的第一属性名写入所述第一属性值之前,以获取所述第一属性数据。
8.一种属性数据的转换装置,其特征在于,包括:
第一获取模块,用于获取用于指示智能设备的多个第一属性的第一属性数据,其中,所述属性数据包括:所述多个第一属性分别对应的多个第一属性名和以及所述多个第一属性分别对应的多个第一属性值;
第二获取模块,用于获取所述智能设备的属性元数据,其中,所述属性元数据包括:预先设置的所述智能设备的多个第二属性分别对应的多个第二属性名、所述多个第二属性分别对应的多个属性顺序号和所述多个第二属性分别对应的多个属性值类型;
转换模块,用于根据所述属性元数据将所述第一属性数据转换为目标属性数据,其中,所述目标属性数据包括:所述多个第一属性分别对应的多个目标属性值。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210753862.6A CN115291793A (zh) | 2022-06-29 | 2022-06-29 | 属性数据的转换方法和装置、存储介质及电子装置 |
PCT/CN2023/072138 WO2024001163A1 (zh) | 2022-06-29 | 2023-01-13 | 属性数据的转换方法和装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210753862.6A CN115291793A (zh) | 2022-06-29 | 2022-06-29 | 属性数据的转换方法和装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115291793A true CN115291793A (zh) | 2022-11-04 |
Family
ID=83821128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210753862.6A Pending CN115291793A (zh) | 2022-06-29 | 2022-06-29 | 属性数据的转换方法和装置、存储介质及电子装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115291793A (zh) |
WO (1) | WO2024001163A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024001163A1 (zh) * | 2022-06-29 | 2024-01-04 | 青岛海尔科技有限公司 | 属性数据的转换方法和装置、存储介质及电子装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11178212B2 (en) * | 2014-07-29 | 2021-11-16 | Facebook, Inc. | Compressing and transmitting structured information |
CN106557531B (zh) * | 2015-09-30 | 2020-07-03 | 伊姆西Ip控股有限责任公司 | 复杂结构对象转换成平面化数据的方法、设备和存储介质 |
CN109413077B (zh) * | 2018-11-07 | 2021-05-14 | 北京奇艺世纪科技有限公司 | 一种json报文数据的收发方法、装置及电子设备 |
CN111078652A (zh) * | 2019-11-28 | 2020-04-28 | 江苏苏宁物流有限公司 | 物流箱码的归档压缩方法及装置 |
CN111404883B (zh) * | 2020-03-02 | 2022-10-14 | 青岛聚好联科技有限公司 | 一种物联网设备通用协议的解析方法及装置 |
CN111581267A (zh) * | 2020-04-14 | 2020-08-25 | 北京明略软件系统有限公司 | 一种对象数据的存储方法和装置 |
CN113918566A (zh) * | 2021-10-11 | 2022-01-11 | 中盈优创资讯科技有限公司 | 一种基于列存储的NetFlow数据保存方法与装置 |
CN115291793A (zh) * | 2022-06-29 | 2022-11-04 | 青岛海尔科技有限公司 | 属性数据的转换方法和装置、存储介质及电子装置 |
-
2022
- 2022-06-29 CN CN202210753862.6A patent/CN115291793A/zh active Pending
-
2023
- 2023-01-13 WO PCT/CN2023/072138 patent/WO2024001163A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024001163A1 (zh) * | 2022-06-29 | 2024-01-04 | 青岛海尔科技有限公司 | 属性数据的转换方法和装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2024001163A1 (zh) | 2024-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112311612B (zh) | 一种信息构建方法、装置及存储介质 | |
CN115291793A (zh) | 属性数据的转换方法和装置、存储介质及电子装置 | |
WO2023168856A1 (zh) | 一种关联场景推荐方法、装置、存储介质及电子装置 | |
CN110928984A (zh) | 一种知识图谱的构建方法、装置、终端及存储介质 | |
CN115047778A (zh) | 智能设备的控制方法和装置、存储介质和电子装置 | |
CN114697150A (zh) | 命令的下发方法和装置、存储介质及电子装置 | |
CN109408737B (zh) | 用户推荐方法、装置和存储介质 | |
CN110769057A (zh) | 基于级联系统的自动升级方法、装置及系统 | |
CN114840557A (zh) | 数据的查询方法和装置、存储介质及电子装置 | |
CN112487251A (zh) | 一种用户id数据关联方法及装置 | |
CN116107975A (zh) | 设备的控制方法和装置、存储介质及电子装置 | |
CN115345225A (zh) | 推荐场景的确定方法及装置、存储介质及电子装置 | |
CN114861678A (zh) | 时间信息的确定方法和装置、存储介质及电子装置 | |
CN115048392A (zh) | 数据的删除方法和装置、存储介质及电子装置 | |
CN114915514A (zh) | 意图的处理方法和装置、存储介质及电子装置 | |
CN113094415B (zh) | 数据抽取方法、装置、计算机可读介质及电子设备 | |
CN113127413A (zh) | 一种运营商数据处理方法、装置、服务器及存储介质 | |
CN114491171A (zh) | 基于工业物联网的数据处理方法、系统、介质及电子设备 | |
CN114676400A (zh) | 身份确定方法、存储介质及电子装置 | |
CN112910988A (zh) | 一种资源获取方法及资源调度装置 | |
CN114697322B (zh) | 一种基于云端业务处理的数据筛选方法 | |
CN114679471B (zh) | 一种基于云端业务处理的数据匹配方法 | |
CN115480809A (zh) | 代码提交量的确定方法及装置、存储介质及电子装置 | |
CN115002014B (zh) | 确定测试结果的方法、装置、存储介质及电子装置 | |
CN115269926A (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 |