CN114266227A - json数据处理方法、装置、设备及机器可读存储介质 - Google Patents

json数据处理方法、装置、设备及机器可读存储介质 Download PDF

Info

Publication number
CN114266227A
CN114266227A CN202111547305.0A CN202111547305A CN114266227A CN 114266227 A CN114266227 A CN 114266227A CN 202111547305 A CN202111547305 A CN 202111547305A CN 114266227 A CN114266227 A CN 114266227A
Authority
CN
China
Prior art keywords
json
attribute
target
processed
json 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.)
Granted
Application number
CN202111547305.0A
Other languages
English (en)
Other versions
CN114266227B (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.)
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System Technology 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 Hangzhou Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN202111547305.0A priority Critical patent/CN114266227B/zh
Publication of CN114266227A publication Critical patent/CN114266227A/zh
Application granted granted Critical
Publication of CN114266227B publication Critical patent/CN114266227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种json数据处理方法、装置、设备及机器可读存储介质,该方法包括:通过消息中间件获取待处理json数据;在确定不存在目标json结构体对应的schema文件,且已获取到的目标json结构体对应的待处理json数据的数量达到预设数量的情况下,依据已获取到的目标json结构体对应的待处理json数据,确定目标json结构体,并将目标json结构体转换为对应的schema文件;依据目标json结构体对应的schema文件,对目标json结构体对应的待处理json数据进行处理。该方法可以降低新增json结构体的json数据的解析难度,避免了新增代码对平台安全性的影响。

Description

json数据处理方法、装置、设备及机器可读存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种json数据处理方法、装置、设备及机器可读存储介质。
背景技术
随着万物物联的全面发展,各行各业都开始在已有平台上建立统一消息中心,用于汇聚和转发各类消息。
目前,大多数消息的载体是json(JavaScript Object Notation,JS对象简谱,一种轻量级的数据交换格式)数据,因此,消息中心中需要包含解析对应json数据的代码模块。但是,json本身只是一种格式,满足这种格式不同的json结构体的内容是不一样的,导致每接入一种json结构体对应的json消息体,就要增加一套对应的解析代码。
实践发现,传统json数据处理方案中,当接入新的json结构体时,需要相关人员提供json结构体,方案实现要求较高,且完整的json结构体在实际项目中通常难以获取,导致新的json结构体的json数据的解析性能难以保证;此外,新增的代码对平台也属于一种风险,对平台的安全性造成了影响。
发明内容
有鉴于此,本申请提供一种json数据处理方法、装置、设备及机器可读存储介质。
根据本申请实施例的第一方面,提供一种json数据处理方法,包括:
通过消息中间件获取待处理json数据;
在确定不存在目标json结构体对应的schema文件,且已获取到的所述目标json结构体对应的待处理json数据的数量达到预设数量的情况下,依据已获取到的所述目标json结构体对应的待处理json数据,确定所述目标json结构体,并将所述目标json结构体转换为对应的schema文件;所述目标json结构体为获取到的待处理json数据对应的json结构体;
依据所述目标json结构体对应的schema文件,对所述目标json结构体对应的待处理json数据进行处理。
根据本申请实施例的第二方面,提供一种json数据处理装置,包括:
获取单元,被配置为通过消息中间件获取待处理json数据;
确定单元,被配置为在确定不存在目标json结构体对应的schema文件,且已获取到的所述目标json结构体对应的待处理json数据的数量达到预设数量的情况下,依据已获取到的所述目标json结构体对应的待处理json数据,确定所述目标json结构体,并将所述目标json结构体转换为对应的schema文件;所述目标json结构体为获取到的待处理json数据对应的json结构体;
处理单元,被配置为依据所述目标json结构体对应的schema文件,对所述目标json结构体对应的待处理json数据进行处理。
根据本申请实施例的第三方面,提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面提供的方法。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现第一方面提供的方法。
根据本申请实施例的第五方面,提供一种计算机程序,该计算机程序存储于计算机可读存储介质,并且当处理器执行该计算机程序时,促使处理器执行第一方面提供的方法。
本申请实施例的json数据处理方法,对于通过消息中间件获取到的待处理json数据,在不存在该待处理json数据对应的json结构体对应的schema文件,且已获取到的该json结构体对应的待处理json数据的数量达到预设数量的情况下,可以依据该预设数量的待处理json数据,确定对应的json结构体,从而,可以在不需要相关人员提供json结构体的情况下,实现json结构体的获取,降低了新增json结构体的json数据的解析难度;此外,在确定了待处理json数据对应的json结构体的情况下,可以将该json结构体转换为对应的schema文件,并依据该schema文件对该json结构体的待处理json数据进行处理,避免了新增代码对平台安全性的影响。
附图说明
图1是本申请实施例提供的一种json数据处理方法的流程示意图;
图2是本申请实施例提供的一种json数据处理的流程示意图;
图3是本申请实施例提供的一种数据来源配置界面的示意图;
图4是本申请实施例提供的一种可视化界面的示意图;
图5是本申请实施例提供的一种json数据处理装置的结构示意图;
图6是本申请实施例提供的另一种json数据处理装置的结构示意图;
图7是本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
需要说明的是,本申请实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
此外,本申请实施例提供的json数据处理方法可以应用于消息中心(或称为消息处理中心,本文中简称为平台)。
请参见图1,为本申请实施例提供的一种json数据处理方法的流程示意图,如图1所示,该json数据处理方法可以包括以下步骤:
步骤S100、通过消息中间件获取待处理json数据。
本申请实施例中,可以通过在平台上配置json数据(也可以称为json消息体)来源的消息中间件信息,由平台通过该消息中间件信息,通过消息中间件获取待处理的json数据。
例如,在新增一种新的json结构体的json数据时,可以在平台上配置该新增json结构体的json数据的消息中间件topic(主题)信息,平台可以依据该消息中间件topic信息,从消息中间件中获取待处理的json数据,
步骤S110、在确定不存在目标json结构体对应的schema文件,且已获取到的目标json结构体对应的待处理json数据的数量达到预设数量的情况下,依据已获取到的目标json结构体对应的待处理数据,确定目标json结构体,并将目标json结构体转换为对应的schema文件。
本申请实施例中,考虑到完整的json结构体在实际项目中通常难以获取,为了降低新增json结构体的json数据的解析难度,可以不再需要相关人员提供json结构体,而是可以依据一定数量的与新增json结构体对应的json数据,反推得到该新增json结构体。
此外,为了避免新增代码对平台安全性的影响,可以不再以解析代码的方式对json数据进行解析,而是依据与json结构体对应的schema文件对该json结构体的json数据进行解析。
相应地,对于通过消息中间件获取到的任一待处理json数据,可以确定是否存在与该待处理json数据对应的json结构体(本文中称为目标json结构体)对应的schema文件。
示例性的,对于通过消息中间件获取到的待处理json数据,平台可以遍历已有的schema文件,并分别依据所遍历的各schema文件对该待处理json数据进行解析,若依据所遍历的任一schema文件对该待处理json数据解析成功,则确定存在目标json结构体对应的schema文件;若依据各schema文件均无法成功对该待处理json数据进行解析,则确定不存在目标json结构体对应的schema文件。
示例性的,在确定不存在目标json结构体对应的schema文件的情况下,平台可以监听目标json结构体对应的待处理json数据,直至已获取到的目标json结构体对应的待处理json数据达到预设数量(可以根据实际场景设定,如1000条)。
在已获取到的目标json结构体对应的待处理json数据达到预设数量的情况下,平台可以依据已获取到的目标json结构体对应的待处理json数据,确定目标json结构体。
示例性的,目标json结构体可以包括该预设数量的待处理json数据中包括的各类型的属性。
由于schema文件属于一种约束类标准,通过schema文件去描述一套json结构体,可以准确描述json结构体的组成属性的各类约束。
因而,在确定了目标json结构体的情况下,可以将目标json结构体转换为对应的schema文件,以便后续流程中可以依据该schema文件对目标json结构体对应的json数据进行处理。
步骤S120、依据目标json结构体对应的schema文件,对目标json结构体对应的待处理数据进行处理。
本申请实施例中,在按照上述方式得到了目标json结构体对应的schema文件的情况下,对于通过消息中间件获取到的目标json结构体对应的待处理json数据,可以依据该schema文件对其进行处理。
例如,可以依据该schema文件对待处理json数据进行解析、过滤等。
需要说明的是,在本申请实施例中,在确定存在目标josn结构体对应的scheme文件的情况下,可以依据该scheme文件对目标json结构体对应的待处理json数据进行处理,而不需要再次按照上述实施例中描述的方式确定目标json结构体以及生成对应的scheme文件。
可见,在图1所示方法流程中,对于通过消息中间件获取到的待处理json数据,在不存在该待处理json数据对应的json结构体对应的schema文件,且已获取到的该json结构体对应的待处理json数据的数量达到预设数量的情况下,可以依据该预设数量的待处理json数据,确定对应的json结构体,从而,可以在不需要相关人员提供json结构体的情况下,实现json结构体的获取,降低了新增json结构体的json数据的解析难度;此外,在确定了待处理json数据对应的json结构体的情况下,可以将该json结构体转换为对应的schema文件,并依据该schema文件对该json结构体的待处理json数据进行处理,避免了新增代码对平台安全性的影响。
在一些实施例中,步骤S110中,依据已获取到的目标json结构体对应的待处理json数据,确定目标json结构体,可以包括:
遍历已获取到的目标json结构体对应的待处理json数据;
以所遍历的第一个待处理json数据为目标json结构体原型,依据所遍历的其余待处理json数据中的属性,对目标json结构体原型进行属性添加和修改,直至已获取到的目标json结构体对应的待处理json数据遍历完成时,将当前的目标json结构体原型确定为目标结构体。
示例性的,为了提高json结构体确定的准确性,在确定不存在目标json结构体对应的schema文件,且已获取到的所述目标json结构体对应的待处理json数据的数量达到预设数量的情况下,可以遍历已获取到的目标json结构体对应的待处理json数据,并以所遍历的第一个待处理json数据为目标json结构体原型,依次遍历其余待处理json数据,并确定当前遍历的待处理json数据中是否存在与当前的目标json结构体原型中的属性不一致的属性,若存在,则依据该待处理json数据对当前的目标json结构体原型进行属性添加(补充当前的目标json结构体原型中没有的属性)和修改,并继续遍历其余未遍历的待处理json数据;若不存在,则继续遍历其余未遍历的待处理json数据。
示例性的,对当前的目标json结构体原型进行属性修改可以包括调整当前的目标json结构体原型中属性的顺序和/或约束条件。
举例来说,假设当前目标json结构体原型包括两个属性,依次为姓名属性和年龄属性,遍历待处理json数据中获取到了性别属性,而预设的属性解析顺序为依次解析姓名、性别、年龄,则在将该性别属性加入到当前目标json结构体原型中时,需要将该性别属性插入姓名属性和年龄属性之间(即调整了年龄属性的顺序)。
在按照上述方式遍历完成已获取到的目标json结构体对应的待处理json数据的情况下,可以将当前的目标json结构体原型确定为目标结构体。
需要说明的是,在本申请实施例中,为了提高目标结构体确定的效率,也可以在连续遍历的待处理json数据达到预设阈值(可以称为第一阈值,其取值根据实际场景设定,该第一阈值小于预设数量),且当前的目标json结构体原型保持不变的情况下,将当前的目标json结构体原型确定为目标json结构体。
在一个示例中,对于目标json结构体中的任一属性,目标json结构体对应的schema文件包括该属性的属性类型、属性默认值、属性描述以及长度约束。
示例性的,为了提高依据schema文件进行json数据解析的准确性,目标json结构体对应的schema文件包括的属性信息应与目标json结构体包括的属性信息一致。
相应地,对于目标json结构体中的任一属性,目标json结构体对应的scheme文件可以包括该属性的属性类型、属性默认值、属性描述以及长度约束。
在一个示例中,对于任一属性,该属性的属性默认值为所遍历的待处理json数据中该属性的属性内容中,占比最高且占比超过第一比例阈值的属性内容。
示例性的,在依据待处理json数据确定目标json结构体的过程中,可以依据待处理json数据中出现的各属性的属性内容,统计相同属性内容的占比。
对于任一属性,可以确定该属性的属性内容中占比最高的属性内容,并比较该属性内容的占比与预设比例阈值(可以称为第一比例阈值,其取值可以根据实际场景设定)。
在该属性的属性内容中,占比最高的属性内容的占比超过第一比例阈值的情况下,可以将该属性的该属性内容(占比最高的属性内容)确定为该属性的属性默认值。
需要说明的是,在本申请实施例中,对于任一属性,若该属性的属性内容中占比最高的属性内容的占比未超过第一比例阈值,则可以确定该属性的属性默认值为空,或者,按照其它策略确定该属性的属性默认值。
在一个示例中,对于任一属性,该属性的长度约束依据所遍历的待处理json数据中该属性的属性内容的长度的最大值确定。
示例性的,在依据待处理json数据确定目标json结构体的过程中,可以依据待处理json数据中出现的各属性的属性长度,统计属性内容的长度的最大值。
对于任一属性,可以依据所遍历的待处理json数据中该属性的属性内容的长度的最大值,确定该属性的长度约束。
例如,可以将该属性的属性内容的长度的最大值,作为该属性的属性内容的长度上限。
示例性的,考虑计算机存储的物理形态通常是以2的指数次方的形式,为了提高数据存储的硬件友好性,在确定属性的长度约束时,可以将大于等于统计出的属性内容的长度的最大值,且最接近该最大值的2的指数次方,确定为该属性的属性内容的长度上限。
例如,若属性内容的长度的最大值为25,则长度上限可以为32(即2的5次方)。若属性内容的长度的最大值为16,则长度上限可以为16(即2的4次方)。
需要说明的是,在本申请实施例中,属性内容的长度约束还可以包括长度下限,该属性内容的长度下限可以按照与上述确定长度上限的类似的方式进行确定,或者,也可以直接使用默认值,如1。
在一个示例中,步骤S120中,依据目标json结构体对应的schema文件,对目标json结构体对应的待处理json数据进行处理,可以包括:
依据目标json结构体对应的schema文件中的长度约束,对不满足长度约束的待处理json数据进行过滤。
示例性的,为了降低业务程序被脏数据攻击的概率,在按照上述方式确定了目标json结构体对应的schema文件的情况下,对于目标json结构体的任一json数据,在进入业务程序处理流程之前,还可以先依据schema文件中的长度约束对获取到的待处理json数据进行过滤,对不满足长度约束的待处理json数据进行滤除。
示例性的,json数据不满足长度约束可以包括json数据中任一属性的属性内容的长度大于长度约束中的长度上限,或,小于长度约束中的长度下限。
在一些实施例中,步骤S110中,将目标json结构体转换为对应的schema文件之后,还可以包括:
在确定满足schema文件微调触发条件的情况下,通过可视化界面对目标json结构体对应的schema文件进行展示;其中,该可视化界面中包括目标json结构体中各属性的可调整信息,各属性的可调整信息的初始内容与目标json结构体对应的schema文件中的内容一致;
依据通过该可视化界面检测到的针对可调整信息的调整指令,对schema文件进行更新。
示例性的,为了提高按照上述方式得到的schema文件的完整性,进而,提高依据schema文件对json数据进行解析的准确性,对于按照上述方式得到的schema文件,可以在确定满足一定条件(本文中称为schema文件微调触发条件)的情况下,对该schema文件进行微调。
示例性的,该schema文件微调触发条件可以包括但不限于目标json结构体成功转换为对应的schema文件(即可以在目标json结构体转换为对应的schema文件的情况下直接进入对schema文件的微调流程)、利用schema文件对josn数据进行过滤时滤除的json数据占比超过预设比例阈值(可以称为第二比例阈值,其取值可以根据实际场景设定)、或者,依据schema文件解析的json数据的数量达到预设阈值(可以称为第二阈值,其取值可以根据实际场景设定)时,数据库的属性中存在至少一个属性的空置率为100%等。
举例来说,json数据解析之后入库(存储到数据库)时,会按照应用层面会使用的属性来创建数据库中的属性字段,例如,数据库中可以包括50个属性字段,若100万条数据里某个属性字段的空置率是100%,则表明schema文件里未包括该属性字段对应的属性。
示例性的,在确定满足schema文件微调触发条件的情况下,可以通过可视化界面对目标json结构体对应的schema文件进行展示,以便相关人员可以通过该可视化界面对目标json结构体对应的schema文件进行展示。
示例性的,为了提高schema文件的微调效率,可视化界面中可以包括目标json结构体中各属性的可调整信息,且各属性的可调整信息的初始内容与目标json结构体对应的schema文件中的内容一致,即相关人员在进行schema文件的微调时,不需要重新输入目标json结构体中的已有属性信息,而是可以通过对可视化界面中展示的属性的可调整信息进行编辑的方式,对schema文件进行微调。
示例性的,通过可视化界面对目标json结构体对应的schema文件进行展示时,可以支持多种不同模型的展示。
例如,可以支持列表模式(即将各属性的属性内容以列表的形式进行展示)、报文模式(即以json报文的形式展示目标json结构体对应的schema文件)或schema模式(即以schema文件的形式展示目标json结构体对应的schema文件)。
其中,由于报文模式或schema模式展示的schema文件的可读性较差,阅读门槛较高,因此,为了简化schema文件的微调操作难度,可以优先以列表模式对目标json结构体对应的schema文件进行展示。
示例性的,当平台通过可视化界面检测到针对可调整信息的调整指令时,可以依据检测到的调整指令对schema文件进行更新。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体实例对本申请实施例提供的技术方案进行说明。
在该实施例中,json数据处理的流程示意图可以参见图2,如图2所示,该json数据处理流程可以包括:
1、通过消息中间件获取待处理json数据。
在该实施例中,当存在新增json结构体时,可以在平台的配置页面中配置新增json结构体在消息中间件的来源队列名称(即配置topic信息);平台可以依据该topic信息从消息中间件中获取(可以称为消费)新增json结构体的json数据(即待处理json数据)。
示例性的,数据来源配置界面的示意图可以参见图3。如图3所述,通过该配置界面,相关人员可以通过输入消息中间件的来源队列名称的方式,或者,通过上传配置文件的方式,配置新增json结构体在消息中间件的来源队列名称。
2、确定获取到的待处理json数据是否存在对应的schema文件。若是,则转至8;否则,转至3。
在该实施例中,对于获取到的待处理json数据,可以依次依据各已有的schema文件对该待处理json数据进行解析;若依据任一schema文件对该待处理json数据解析成功,则确定存在对应的schema文件;若依据各schema文件均无法对该待处理json数据解析成功,则确定不存在对应的schema文件。
3、依据预设数量的同类型的待处理json数据(即对应同一json结构体的待处理json数据),确定目标json结构体。
在该实施例中,在确定不存在对应的schema文件的情况下,平台可以监听消费该类型的待处理json数据,并在该类型的待处理json数据的数量达到预设数量(以1000条为例)时,可以依据该1000条待处理json数据确定对应的json结构体(如上述目标json结构体)。
示例性的,由于物联网场景中,物联感知数据的产生频率通常比较高,同类型的1000条json数据可以在较短时间(如10秒)内产生,因此,对于新增json结构体,采用本申请实施例提供方案,可以在不需要相关人员提供json结构体的情况下,可以高效、自动地生成json结构体。
示例性的,平台依据1000条待处理json数据确定对应的json结构体的具体实现可以如下:
从1000条待处理的json数据中选择一条待处理json数据(如最先获取到的待处理json数据)作为结构体原型,并依次遍历剩余的999条待处理json数据,依据该999条待处理json数据中的属性对该结构体原型进行属性添加和修改,直至该999条待处理json数据均遍历完成,或,连续遍历第二阈值数量(如200条)的待处理json数据之后当前的结构体原型均未发生更新。
在该实施例中,为了提高生成schema文件的效率,最大程度降低后续人工干预(即微调)的工作量,在依据预设数量的同类型的待处理json数据确定目标json结构体时,不再简单地采用规则到规则的转换,而是可以添加更多的内容,比如属性描述、长度约束、属性类型、属性默认值等。
相应地,json结构体中可以包括属性类型、属性默认值、属性描述以及长度约束等信息。其中:
default(属性默认值):对于任一属性,该属性的属性内容中占比最高且超过第一比例阈值的属性内容,即1000条消息体中某个属性一直有数据,且数据内容的统计结果中出现了较为明显的相同数据。
属性的长度约束:统计某个属性的属性内容在1000条待处理json数据中的长度,得到最大值。
示例性的,一般长度范围是2的指数次(依据计算机存储的物理形态确定)方式,大于等于这个最大值的最小的2的指数次就是属性的最大长度,例如最大值是26,大于等于这个最大值的2的指数次是32(2的5次方)。
属性类型:根据属性内容和标点确定,例如,数字类型的没有引号,字符类型的有双引号,时间类型的满足时间格式(例如yyyy-MM-dd hh:mm:ss),bool类型的内容只有true(真)和false(假)两种等等。
属性描述:通过属性名中的驼峰(较为标准)或者特殊分隔符(例如“_”)规律,辅以简单的NLP(Natural Language Processing,自然语言处理),进行翻译,例如plateColor,即为车牌颜色,得到属性描述信息。
4、将目标json结构体转换为对应的schema文件。
示例性的,对于目标json结构体中的任一属性,目标json结构体对应的schema文件包括该属性的属性类型、属性默认值、属性描述以及长度约束。
5、通过可视化界面展示目标json结构体对应的schema文件。
在该实施例中,考虑到转换出来的schema文件可能是不完整的,例如,若某个选填字段为空,则待处理json数据中没有该属性字段,确定的目标json结构体和转换得到的schema文件中均不存在该属性字段,此时,可以通过图形化界面(即可视化界面)对schema文件进行微调。
示例性的,该可视化界面的示意图可以参见图4。如图4所示,属性类型、中文名称、属性描述等均为可调整信息,且通过选择操作选项(即点击图4中“齿轮图标”)还可以触发属性默认值以及长度约束等可调整信息的展示。
6、确定是否需要进行schema文件微调。若是,则转至7;否则,转至8。
在该实施例中,平台在通过可视化界面展示目标json结构体的情况下,若检测到通过该可视化界面输入的调整指令,则确定需要进行schema文件微调;若未在预设时间内检测到通过该可视化界面输入的调整指令,或,检测到针对该可视化界面的关闭指令,则确定不需要进行schema文件微调。
7、依据检测到的调整指令对schema文件进行更新,得到最终的schema文件。
8、依据schema文件对待处理json数据进行解析。
9、确定待处理json数据是否满足schema文件中的长度约束。若是,则转至业务程序处理流程;否则,丢弃该待处理json数据。
可见,通过schema文件对json数据进行快速灵活的自动扩展,使用一套json转换schema文件的代码,辅以可视化界面的细微调整能力,可以在实际项目中实现无新增代码的扩展协议接入能力,同时基于schema标准可以实现json数据的约束规范,解决在实际使用过程中json协议脏数据的攻击。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
请参见图5,为本申请实施例提供的一种json数据处理装置的结构示意图,如图5所示,该json数据处理装置可以包括:
获取单元510,被配置为通过消息中间件获取待处理json数据;
确定单元520,被配置为在确定不存在目标json结构体对应的schema文件,且已获取到的目标json结构体对应的待处理json数据的数量达到预设数量的情况下,依据已获取到的目标json结构体对应的待处理json数据,确定目标json结构体,并将目标json结构体转换为对应的schema文件;目标json结构体为获取到的待处理json数据对应的json结构体;
处理单元530,被配置为依据目标json结构体对应的schema文件,对目标json结构体对应的待处理json数据进行处理。
在一些实施例中,确定单元520,具体被配置为遍历已获取到的目标json结构体对应的待处理json数据;以所遍历的第一个待处理json数据为目标json结构体原型,依据所遍历的其余待处理json数据中的属性,对目标json结构体原型进行属性添加和修改,直至已获取到的目标json结构体对应的待处理json数据遍历完成时,将当前的目标json结构体原型确定为目标结构体。
在一些实施例中,对于目标json结构体中的任一属性,目标json结构体对应的schema文件包括该属性的属性类型、属性默认值、属性描述以及长度约束。
在一些实施例中,对于任一属性,该属性的属性默认值为所遍历的待处理json数据中该属性的属性内容中,占比最高且占比超过第一比例阈值的属性内容。
在一些实施例中,对于任一属性,该属性的长度约束依据所遍历的待处理json数据中该属性的属性内容的长度的最大值确定。
在一些实施例中,处理单元530,具体被配置为依据目标json结构体对应的schema文件中的长度约束,对不满足该长度约束的待处理json数据进行过滤。
在一些实施例中,如图6所示,上述装置还包括:
调整单元540,被配置为在确定满足schema文件微调触发条件的情况下,通过可视化界面对目标json结构体对应的schema文件进行展示;其中,该可视化界面中包括目标json结构体中各属性的可调整信息,各属性的可调整信息的初始内容与目标json结构体对应的schema文件中的内容一致;依据通过可视化界面检测到的针对可调整信息的调整指令,对该schema文件进行更新。
请参见图7,为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可以包括处理器701、通信接口702、存储器703和通信总线704。处理器701、通信接口702以及存储器703通过通信总线704完成相互间的通信。其中,存储器703上存放有计算机程序;处理器701可以通过执行存储器703上所存放的程序,执行上文描述的json数据处理方法。
本文中提到的存储器703可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器703可以是:RAM(Radom AccessMemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
本申请实施例还提供了一种存储有计算机程序的计算机可读存储介质,例如图7中的存储器703,该计算机程序可由图7所示电子设备中的处理器701执行以实现上文中描述的json数据处理方法。
本申请实施例还提供了一种计算机程序,存储于计算机可读存储介质,例如图7中的存储器703,并且当处理器执行该计算机程序时,促使处理器701执行上文中描述的json数据处理方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种json数据处理方法,其特征在于,包括:
通过消息中间件获取待处理json数据;
在确定不存在目标json结构体对应的schema文件,且已获取到的所述目标json结构体对应的待处理json数据的数量达到预设数量的情况下,依据已获取到的所述目标json结构体对应的待处理json数据,确定所述目标json结构体,并将所述目标json结构体转换为对应的schema文件;所述目标json结构体为获取到的待处理json数据对应的json结构体;
依据所述目标json结构体对应的schema文件,对所述目标json结构体对应的待处理json数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述依据已获取到的所述目标json结构体对应的待处理json数据,确定所述目标json结构体,包括:
遍历已获取到的所述目标json结构体对应的待处理json数据;
以所遍历的第一个待处理json数据为目标json结构体原型,依据所遍历的其余待处理json数据中的属性,对所述目标json结构体原型进行属性添加和修改,直至已获取到的所述目标json结构体对应的待处理json数据遍历完成时,将当前的目标json结构体原型确定为所述目标结构体。
3.根据权利要求2所述的方法,其特征在于,对于所述目标json结构体中的任一属性,所述目标json结构体对应的schema文件包括该属性的属性默认值;
其中,对于任一属性,该属性的属性默认值为所遍历的待处理json数据中该属性的属性内容中,占比最高且占比超过第一比例阈值的属性内容。
4.根据权利要求2所述的方法,其特征在于,对于所述目标json结构体中的任一属性,所述目标json结构体对应的schema文件包括该属性的长度约束;其中,对于任一属性,该属性的长度约束依据所遍历的待处理json数据中该属性的属性内容的长度的最大值确定。
5.根据权利要求4所述的方法,其特征在于,所述依据所述目标json结构体对应的schema文件,对所述目标json结构体对应的待处理json数据进行处理,包括:
依据所述目标json结构体对应的schema文件中的长度约束,对不满足所述长度约束的待处理json数据进行过滤。
6.根据权利要求1所述的方法,其特征在于,所述将所述目标json结构体转换为对应的schema文件之后,还包括:
在确定满足schema文件微调触发条件的情况下,通过可视化界面对所述目标json结构体对应的schema文件进行展示;其中,所述可视化界面中包括所述目标json结构体中各属性的可调整信息,各属性的可调整信息的初始内容与所述目标json结构体对应的schema文件中的内容一致;
依据通过所述可视化界面检测到的针对所述可调整信息的调整指令,对所述schema文件进行更新。
7.一种json数据处理装置,其特征在于,包括:
获取单元,被配置为通过消息中间件获取待处理json数据;
确定单元,被配置为在确定不存在目标json结构体对应的schema文件,且已获取到的所述目标json结构体对应的待处理json数据的数量达到预设数量的情况下,依据已获取到的所述目标json结构体对应的待处理json数据,确定所述目标json结构体,并将所述目标json结构体转换为对应的schema文件;所述目标json结构体为获取到的待处理json数据对应的json结构体;
处理单元,被配置为依据所述目标json结构体对应的schema文件,对所述目标json结构体对应的待处理json数据进行处理。
8.根据权利要求7所述的装置,其特征在于,
所述确定单元,具体被配置为遍历已获取到的所述目标json结构体对应的待处理json数据;以所遍历的第一个待处理json数据为目标json结构体原型,依据所遍历的其余待处理json数据中的属性,对所述目标json结构体原型进行属性添加和修改,直至已获取到的所述目标json结构体对应的待处理json数据遍历完成时,将当前的目标json结构体原型确定为所述目标结构体;
其中,对于所述目标json结构体中的任一属性,所述目标json结构体对应的schema文件包括该属性的属性默认值以及长度约束;
其中,对于任一属性,该属性的属性默认值为所遍历的待处理json数据中该属性的属性内容中,占比最高且占比超过第一比例阈值的属性内容;
其中,对于任一属性,该属性的长度约束依据所遍历的待处理json数据中该属性的属性内容的长度的最大值确定;
其中,所述处理单元,具体被配置为依据所述目标json结构体对应的schema文件中的长度约束,对不满足所述长度约束的待处理json数据进行过滤;
和/或,
所述装置还包括:
调整单元,被配置为在确定满足schema文件微调触发条件的情况下,通过可视化界面对所述目标json结构体对应的schema文件进行展示;其中,所述可视化界面中包括所述目标json结构体中各属性的可调整信息,各属性的可调整信息的初始内容与所述目标json结构体对应的schema文件中的内容一致;依据通过所述可视化界面检测到的针对所述可调整信息的调整指令,对所述schema文件进行更新。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的方法。
CN202111547305.0A 2021-12-16 2021-12-16 json数据处理方法、装置、设备及机器可读存储介质 Active CN114266227B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111547305.0A CN114266227B (zh) 2021-12-16 2021-12-16 json数据处理方法、装置、设备及机器可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111547305.0A CN114266227B (zh) 2021-12-16 2021-12-16 json数据处理方法、装置、设备及机器可读存储介质

Publications (2)

Publication Number Publication Date
CN114266227A true CN114266227A (zh) 2022-04-01
CN114266227B CN114266227B (zh) 2024-05-24

Family

ID=80827643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111547305.0A Active CN114266227B (zh) 2021-12-16 2021-12-16 json数据处理方法、装置、设备及机器可读存储介质

Country Status (1)

Country Link
CN (1) CN114266227B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068854A (zh) * 2015-08-07 2015-11-18 杭州古北电子科技有限公司 一种使用相同规则实现对不同产品的控制的方法
CN111090788A (zh) * 2019-12-03 2020-05-01 广州品唯软件有限公司 json文件的比对方法、装置、存储介质及计算机设备
CN112287266A (zh) * 2019-07-09 2021-01-29 腾讯科技(深圳)有限公司 一种网页配置的处理方法及其装置、设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068854A (zh) * 2015-08-07 2015-11-18 杭州古北电子科技有限公司 一种使用相同规则实现对不同产品的控制的方法
CN112287266A (zh) * 2019-07-09 2021-01-29 腾讯科技(深圳)有限公司 一种网页配置的处理方法及其装置、设备及存储介质
CN111090788A (zh) * 2019-12-03 2020-05-01 广州品唯软件有限公司 json文件的比对方法、装置、存储介质及计算机设备

Also Published As

Publication number Publication date
CN114266227B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
US10185478B2 (en) Creating a filter for filtering a list of objects
US20150095306A1 (en) Analysis, inference, and visualization of social networks
JP5346841B2 (ja) 文書分類システムおよび文書分類プログラムならびに文書分類方法
US9390077B2 (en) Document division method and system
US10289286B2 (en) Thing modeler for internet of things
EP3139328A1 (en) Systems and methods for structuring data from unstructured electronic data files
US8972498B2 (en) Mobile-based realtime location-sensitive social event engine
US11403460B2 (en) Transformation in tabular data cleaning tool
US20080313220A1 (en) System and method for interfacing with a system monitor
US11709848B2 (en) Focused probabilistic entity resolution from multiple data sources
EP2618296A1 (en) Social media data analysis system and method
KR101773574B1 (ko) 데이터 테이블의 차트 시각화 방법
EP3399443A1 (en) Automated assistance for generating relevant and valuable search results for an entity of interest
US10861203B1 (en) Ontology-backed automatic chart creation
US10250550B2 (en) Social message monitoring method and apparatus
US20190197043A1 (en) System and method for analysis and represenation of data
JP7309811B2 (ja) データ注釈方法、装置、電子機器および記憶媒体
CN107122464B (zh) 一种辅助决策系统及方法
CN114266227A (zh) json数据处理方法、装置、设备及机器可读存储介质
CN115186738B (zh) 模型训练方法、装置和存储介质
US20140136274A1 (en) Providing multiple level process intelligence and the ability to transition between levels
CN111191089B (zh) 基于医养照护场景的数据可视化方法、系统、设备及介质
JP7331384B2 (ja) 情報処理装置及びプログラム
US10061773B1 (en) System and method for processing semi-structured data
CN117369684A (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