CN111736917B - 数据校验方法、装置、计算机设备和存储介质 - Google Patents
数据校验方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111736917B CN111736917B CN202010523597.3A CN202010523597A CN111736917B CN 111736917 B CN111736917 B CN 111736917B CN 202010523597 A CN202010523597 A CN 202010523597A CN 111736917 B CN111736917 B CN 111736917B
- Authority
- CN
- China
- Prior art keywords
- data
- rule
- node
- nodes
- traversed
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及软件开发技术领域,具体涉及一种数据校验方法、装置、计算机设备和存储介质。所述方法包括:在检测到接收到的数据为JSON数据时,根据接收到的JSON数据得到包含N个待校验节点的树结构数据;确定与该接收到的JSON数据的业务标识对应的规则描述数据,规则描述数据是包含M个规则节点的树结构数据,M个规则节点中有K个规则描述节点,规则描述节点是对应有数据校验规则的规则节点,使用各个规则描述节点对应的数据校验规则对该各个规则描述节点对应的待校验节点的节点数据进行校验。本发明实施例能够提高开发人员实现对JSON数据进行校验的功能的开发效率,并且能够实现对JSON数据进行简单校验和复杂校验。
Description
技术领域
本申请涉及软件开发技术领域,特别是涉及一种数据校验方法、装置、计算机设备和存储介质。
背景技术
JSON(JavaScript Object Notation,JS对象简谱)是一种常用的数据交换格式,应用场景很广泛,比如web场景中的很多数据接口返回的数据都是JSON数据。
在Java Web软件开发过程中,为了实现对JSON数据进行校验的功能,一种方式是人工手工解析出JSON数据中的各字段并对各字段进行校验;另一种方式是使用JSONSchema描述文件对JSON数据进行校验。
上述第一种方式的不足是开发过程复杂,开发人员必须事先清楚的知道被校验节点的路径才能编写代码,并且硬代码编写没有扩展性;第二种方式的不足是Schema描述文件庞大复杂,文件体积基本是被校验的JSON 数据的三倍以上,而且通过Schema描述文件只能实现对JSON数据进行简单校验如正则校验,而无法对JSON数据进行复杂的校验,比如业务数据校验或逻辑校验等校验方式。
发明内容
本发明针对现有技术的缺点,提供了一种数据校验方法、装置、计算机设备和存储介质,本发明实施例能够提高开发人员实现对JSON数据进行校验的功能的开发效率,并且能够实现对JSON数据进行简单校验和复杂校验。
本发明根据第一方面提供了一种数据校验方法,在一个实施例中,该方法包括:
在检测到接收到的数据为JSON数据时,根据接收到的JSON数据得到包含N个待校验节点的树结构数据;
确定与该接收到的JSON数据的业务标识对应的规则描述数据,规则描述数据是包含M个规则节点的树结构数据,M个规则节点中有K个规则描述节点,规则描述节点是对应有数据校验规则的规则节点,其中, N>=M,M>=K,N、M、K皆为大于0的正整数;
使用各个规则描述节点对应的数据校验规则对该各个规则描述节点对应的待校验节点的节点数据进行校验。
在一个实施例中,使用各个规则描述节点对应的数据校验规则对该各个规则节点对应的待校验节点的节点数据进行校验,包括:
确定规则描述数据对应的遍历方式;
按照该遍历方式递归遍历规则描述数据包含的M个规则节点,在确定遍历到的规则节点属于规则描述节点时,确定该遍历到的规则节点对应的数据校验规则和待校验节点,使用该遍历到的规则节点对应的数据校验规则对该遍历到的规则节点对应的待校验节点的节点数据进行校验。
在一个实施例中,确定遍历到的规则节点对应的数据校验规则,包括:
获取该遍历到的规则节点的节点数据,该遍历到的规则节点的节点数据包括至少一个规则代码;
读取校验规则配置文件,将该校验规则配置文件中与该至少一个规则代码对应的至少一个数据校验规则确定为该遍历到的规则节点对应的数据校验规则。
在一个实施例中,确定该遍历到的规则节点对应的待校验节点,包括:
确定该遍历到的规则节点对应的数据类型;
若该遍历到的规则节点对应的数据类型为第一类型,将N个待校验节点中,层级信息与该遍历到的规则节点的层级信息相同的待校验节点确定为该遍历到的规则节点对应的待校验节点;
若该遍历到的规则节点对应的数据类型为第二类型,将N个待校验节点中,层级信息与该遍历到的规则节点的层级信息相同的目标待校验节点确定为该遍历到的规则节点对应的待校验节点,确定该遍历到的规则节点对应的子级规则节点,将该目标待校验节点对应的所有子级待校验节点确定为该子级规则节点对应的待校验节点。
在一个实施例中,该遍历到的规则节点对应的待校验节点的数量为一个或多个;
使用该遍历到的规则节点对应的数据校验规则对该遍历到的规则节点对应的待校验节点的节点数据进行校验,包括:
若该遍历到的规则节点对应的待校验节点的数量为多个,使用该遍历到的规则节点对应的数据校验规则分别对该遍历到的规则节点对应的各个待校验节点的节点数据进行校验。
在一个实施例中,确定与该接收到的JSON数据的业务标识对应的规则描述数据,包括:
从配置中心获取与该接收到的JSON数据的业务标识对应的规则描述数据。
在一个实施例中,该数据校验方法还包括:
获取多个对应不同业务的树结构JSON数据,每个业务的树结构JSON 数据包含至少一个数据节点;
确定各个树结构JSON数据对应的校验规则配置信息,校验规则配置信息用于描述各个树结构JSON数据包含的全部或部分数据节点对应的规则代码;
根据各个树结构JSON数据对应的校验规则配置信息将该各个树结构 JSON数据的全部或部分数据节点进行赋值,得到各个业务对应的规则描述数据。
本发明根据第二方面提供了一种数据校验装置,在一个实施例中,该装置包括:
树结构获得模块,用于在检测到接收到的数据为JSON数据时,根据接收到的JSON数据得到包含N个待校验节点的树结构数据;
规则描述数据确定模块,用于确定与该接收到的JSON数据的业务标识对应的规则描述数据,规则描述数据是包含M个规则节点的树结构数据,M个规则节点中有K个规则描述节点,规则描述节点是对应有数据校验规则的规则节点,其中,N>=M,M>=K,N、M、K皆为大于0的正整数;
数据校验模块,用于使用各个规则描述节点对应的数据校验规则对该各个规则描述节点对应的待校验节点的节点数据进行校验。
本发明根据第三方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一方法的实施例的步骤。
本发明根据第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一方法的实施例的步骤。
在本发明实施例中,在接收到数据后,如果检测到该接收到的数据为 JSON数据,则根据该接收到的JSON数据得到包含N个待校验节点的树结构数据;确定与该接收到的JSON数据的业务标识对应的规则描述数据,该规则描述数据是包含M个规则节点的树结构数据,M个规则节点中有K个规则描述节点,使用各个规则描述节点对应的数据校验规则对该各个规则描述节点对应的待校验节点的节点数据进行校验,本实施例通过一个JSON 数据来描述需要校验的JSON数据的数据校验规则,相比现有的校验JSON 数据的方式,能够提高开发人员实现对JSON数据进行校验的功能的开发效率,并且既能够实现对JSON数据进行简单校验,也能够实现对JSON数据进行复杂校验。
附图说明
图1为一个实施例中一种数据校验方法的流程示意图;
图2为一个实施例中待校验树结构数据和规则描述数据的示意图;
图3为一个实施例中校验待校验节点的节点数据的的流程示意图;
图4为一个实施例中树结构数据各个节点的遍历顺序示意图;
图5为又一个实施例中待校验树结构数据和规则描述数据的示意图;
图6为又一个实施例中一种数据校验方法的流程示意图;
图7为一个实施例中一种数据校验装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本发明一个实施例提供了一种数据校验方法,如图1所示,该方法包括以下步骤S110-S130。
步骤S110:在检测到接收到的数据为JSON数据时,根据接收到的JSON 数据得到包含N个待校验节点的树结构数据。
本实施例提供的数据校验方法可以应用于需要对JSON数据进行校验的场景中,比如,企业间合作接口、开放API(Application Programming Interface,应用程序编程接口)、RPC远程调用(Remote Procedure Call Protocol,远程过程调用协议)等,该方法可以由服务器或用户终端来执行,其中,服务器可以指独立服务器或多个服务器构成的集群,用户终端可以是智能手机、笔记本电脑、平板电脑、等计算设备。以下以执行主体为服务器为例对本实施例提供的数据校验方法进行说明。
服务器在接收到来自其他服务器或用户终端的数据后,检测接收到的数据是否为JSON数据(即封装为JSON格式的数据),在检测到接收到的数据为JSON数据时,需要将接收到的JSON数据转换为树结构数据,其中,树结构数据包含至少一个数据节点(也称为节点。为了方便区分,将待校验的树结构数据中数据节点称为待校验节点,将后续的规则描述数据中的数据节点称为规则节点),树结构数据包含的数据节点的数量可以以N来表示。具体地,服务器可以通过JSON数据中的各数据节点的id(即数据节点的标识)及其对应的pid(即parent id或称为父节点标识)来确定各个节点之间的关系,并建立树结构数据。需要说明的是,当不同业务的 JSON数据转换得到的树结构数据所包含的待校验节点的数量(即N的值) 可能不同,树结构数据包含的待校验节点的分布情况也可能不同。
步骤S120:确定与该接收到的JSON数据的业务标识对应的规则描述数据,规则描述数据是包含M个规则节点的树结构数据,M个规则节点中有K个规则描述节点,规则描述节点是对应有数据校验规则的规则节点。
在本实施例中,规则描述数据是树结构形式的JSON数据,其包含至少一个规则节点(规则节点的数量可以以M来表示),M个规则节点中有部分或全部规则节点属于规则描述节点(M个规则节点中规则描述节点的数量可以用K来表示),规则描述节点是对应有数据校验规则的规则节点,也就是说,本实施例通过一个JSON数据来描述需要校验的JSON数据的数据校验规则,当需要对待校验树结构数据(即待校验JSON数据的树结构数据)进行校验时,对规则描述数据进行解析即可获得该需要校验的JSON数据的数据校验规则。
待校验树结构数据中的待校验节点与规则描述数据中的规则节点可以是一一对应的,示例性地,图2中(a)所示为规则描述数据,(b)所示为待校验树结构数据,其中,(a)中的A数据节点对应于(b)中的A’数据节点,两个数据节点的数据类型相同,B数据节点对应于(b)中的B’数据节点,两个数据节点的数据类型相同,其余节点可以此类推。待校验树结构数据中的待校验节点与规则描述数据中的规则节点可以不是一一对应的,即有可能一个规则节点对应多个待校验节点。
同一业务的JSON对应一个规则描述数据,即同一业务的JSON数据使用同一个或同一套数据校验规则来进行校验,比如,某个接口提供单一服务,那么该接口接收到的所有JSON数据都可以用同一各规则描述数据来进行校验。各个规则描述数据与其对应的业务的业务标识之间预先建立有映射关系,从而能够通过待校验的JSON数据对应的业务标识来确定相应的规则描述数据。需要说明说的是,对应于不同业务的规则描述数据所包含的规则节点的数量(即M的值)和规则描述节点的数量(即K的值)可能不同,树结构数据包含的待校验节点的分布情况也可能不同。
进一步地,服务器可以从配置中心获取与该接收到的JSON数据的业务标识对应的规则描述数据。具体地,各个业务的规则描述数据可以存储于公共的配置中心,这样本服务器、其他服务器或其他系统可以从配置中心获取相应的规则描述数据,使规则描述数据可以复用。
步骤S130:使用各个规则描述节点对应的数据校验规则对该各个规则描述节点对应的待校验节点的节点数据进行校验。
在本实施例中,服务器在确定出相应的规则描述数据之后,对规则描述数据进行解析,得到规则描述数据中各个规则描述节点对应的数据校验规则,进而使用各个规则描述节点对应的数据校验规则对该各个规则描述节点对应的待校验节点的节点数据进行校验。
本实施例通过一个JSON数据来描述需要校验的JSON数据的数据校验规则,相比现有的校验JSON数据的方式,能够提高开发人员实现对JSON 数据进行校验的功能的开发效率,并且既能够实现对JSON数据进行简单校验,也能够实现对JSON数据进行复杂校验。
在一个实施例中,如图3所示,步骤S130:使用各个规则描述节点对应的数据校验规则对该各个规则节点对应的待校验节点的节点数据进行校验,包括:
步骤S131:确定规则描述数据对应的遍历方式。
步骤S132:按照该遍历方式递归遍历规则描述数据包含的M个规则节点,在确定遍历到的规则节点属于规则描述节点时,确定该遍历到的规则节点对应的数据校验规则和待校验节点,使用该遍历到的规则节点对应的数据校验规则对该遍历到的规则节点对应的待校验节点的节点数据进行校验。
在本实施例中,各个业务的规则描述数据对应的遍历方式可以相同或不相同。其中,规则描述数据对应的遍历方式可以是深度优先遍历或广度优先遍历,不同的遍历方式会对应不同的遍历顺序,比如,服务器按照深度优先遍历方式如图2中(a)所示的规则描述数据进行递归遍历,遍历顺序如图4所示。
在确定出规则描述数据对应的遍历方式之后,服务器就按照确定出的遍历方式对应的遍历顺序递归遍历(或称为访问)规则描述数据中的各个规则节点。具体地,假如规则描述节点中全部规则节点都属于规则描述节点,那么服务器每遍历到一个规则节点,就用遍历到的规则节点对应的数据校验规则对该节点对应的待校验节点的节点数据进行校验。假如规则描述节点中只有部分规则节点属于规则描述节点,那么服务器每遍历到一个规则节点,先检测遍历到的规则节点是否属于规则描述节点,如果确定遍历到规则节点不属于规则描述节点,那么就按照遍历顺序对下一顺序的规则节点进行遍历,比如,在图4中,服务器遍历到B规则节点,确定B规则节点不属于规则描述节点,那么就继续遍历D规则节点;如果确定遍历到规则节点属于规则描述节点,那么就用遍历到的规则节点对应的数据校验规则对该节点对应的待校验节点的节点数据进行校验,校验结果如果是校验通过,那么服务器就继续对下一顺序的规则节点进行遍历,校验结果如果是校验未通过,那么服务器就中断遍历并返回校验结果。
在一个实施方式中,服务器确定遍历到的规则节点对应的数据校验规则的步骤,包括:
获取该遍历到的规则节点的节点数据,该遍历到的规则节点的节点数据包括至少一个规则代码;
读取校验规则配置文件,将该校验规则配置文件中与该至少一个规则代码对应的至少一个数据校验规则确定为该遍历到的规则节点对应的数据校验规则。
在本实施方式中,该遍历到的规则节点属于规则描述节点,服务器遍历到一个规则描述节点后,会获取规则描述节点的节点数据,其中,规则描述节点的节点数据包括至少一个规则代码。具体地,每个规则代码会对应一个或多个(数量可根据具体场景进行配置)数据校验规则,数据校验规则包括但不限于是正则校验规则、业务校验规则和逻辑校验规则。
服务器在获得规则描述节点对应的至少一个规则代码后,读取校验规则配置文件,将该校验规则配置文件中与该至少一个规则代码对应的至少一个数据校验规则确定为该遍历到的规则节点对应的数据校验规则。其中,校验规则配置文件用于配置数据校验规则及其对应的规则代码之间的关联关系。进一步地,校验规则配置文件可以存储于配置中心中。
在一个实施方式中,对于待校验树结构数据中的待校验节点与规则描述数据中的规则节点可能不是一一对应的场景,服务器确定该遍历到的规则节点对应的待校验节点的步骤,包括:
确定该遍历到的规则节点对应的数据类型;
若该遍历到的规则节点对应的数据类型为第一类型,将N个待校验节点中,层级信息与该遍历到的规则节点的层级信息相同的待校验节点确定为该遍历到的规则节点对应的待校验节点;
若该遍历到的规则节点对应的数据类型为第二类型,将N个待校验节点中,层级信息与该遍历到的规则节点的层级信息相同的目标待校验节点确定为该遍历到的规则节点对应的待校验节点,确定该遍历到的规则节点对应的子级规则节点,将该目标待校验节点对应的所有子级待校验节点确定为该子级规则节点对应的待校验节点。
其中,数据类型为第一类型可以是指该规则描述节点的数据类型不属于list类型,比如Object类型;数据类型为第二类型可以是指该规则描述节点的数据类型属于list类型。层级信息用于表征数据节点在树结构数据(这里可以指待校验树结构数据或规则描述数据)的位置,比如第几层第几个。在本实施方式中,该遍历到的规则节点属于规则描述节点,即服务器在遍历到规则描述节点后会确定该规则描述节点对应的数据类型,并根据具体确定出的数据类型来确定出该规则描述节点对应的待校验节点。
不管规则描述节点的数据类型为第一类型或第二类型,服务器都将待校验树结构数据的所有待校验节点中,层级信息与该遍历到的规则节点的层级信息相同的待校验节点确定为该遍历到的规则节点(后续将其称为目标规则节点)对应的待校验节点。进一步地,假如规则描述节点的数据类型属于list类型,说明与其对应的待校验节点的数量为多个,此时,服务器会进一步确定出该规则描述节点的子节点(即该子级规则节点),然后将该目标待校验节点对应的所有子级待校验节点确定为该子级规则节点对应的待校验节点,比如,如图5所示,服务器遍历到B规则节点时,确定 B规则节点属于list类型,那么确定出B规则节点对应的待校验节点为B’待校验节点,并进一步确定出B规则节点的子节点(即D规则节点),然后将B’待校验节点对应的所有子节点(即D’1、D’2和D’3待校验节点) 作为D规则节点对应的待校验节点。
在一个实施方式中,该遍历到的规则节点,即规则描述节点对应的待校验节点的数量为一个或多个。相应地,使用该遍历到的规则节点对应的数据校验规则对该遍历到的规则节点对应的待校验节点的节点数据进行校验,包括:
若该遍历到的规则节点对应的待校验节点的数量为多个,使用该遍历到的规则节点对应的数据校验规则分别对该遍历到的规则节点对应的各个待校验节点的节点数据进行校验。
在本实施方式中,规则描述节点对应的待校验节点的数量为多个,那么会依次使用该规则描述节点对应的数据校验规则对该规则描述节点对应的各个待校验节点的节点数据进行校验。
在一个实施例中,如图6所示,本发明提供的数据校验方法还包括以下步骤:
步骤S140:获取多个对应不同业务的树结构JSON数据,每个业务的树结构JSON数据包含至少一个数据节点。
步骤S150:确定各个树结构JSON数据对应的校验规则配置信息,校验规则配置信息用于描述各个树结构JSON数据包含的全部或部分数据节点对应的规则代码。
步骤S160:根据各个树结构JSON数据对应的校验规则配置信息将该各个树结构JSON数据的全部或部分数据节点进行赋值,得到各个业务对应的规则描述数据。
在本实施例中,服务器会获取多个对应于不同业务的树结构JSON数据,即转换为树结构数据的JSON数据,然后利用各个树结构JSON数据对应的校验规则配置信息将各个树结构JSON数据的全部或部分数据节点进行赋值,从而将各个业务的树结构JSON数据转化为各个业务对应的规则描述数据。比如,服务器获取某个业务的树结构JSON数据,如图2中(b)所示的树结构数据,其中的A’至F’等6个数据节点的节点数据是具体数据(如,"name"),服务器可以将上述6个数据节点中的部分或全部节点的节点数据赋值为规则代码,如,r1、t1等。
服务器执行上述操作得到各个业务对应的规则描述数据后,可以将各个规则描述数据存储于配置中心。
基于相同的发明构思,本发明还提供了一种数据校验装置。在一个实施例中,如图7所示,该数据校验装置包括以下模块:
树结构获得模块110,用于在检测到接收到的数据为JSON数据时,根据接收到的JSON数据得到包含N个待校验节点的树结构数据;
规则描述数据确定模块120,用于确定与该接收到的JSON数据的业务标识对应的规则描述数据,规则描述数据是包含M个规则节点的树结构数据,M个规则节点中有K个规则描述节点,规则描述节点是对应有数据校验规则的规则节点,其中,N>=M,M>=K,N、M、K皆为大于0的正整数;
数据校验模块130,用于使用各个规则描述节点对应的数据校验规则对该各个规则描述节点对应的待校验节点的节点数据进行校验。
在一个实施例中,数据校验模块,包括:
遍历方式确定子模块,用于确定规则描述数据对应的遍历方式;
数据校验子模块,用于按照该遍历方式递归遍历规则描述数据包含的 M个规则节点,在确定遍历到的规则节点属于规则描述节点时,确定该遍历到的规则节点对应的数据校验规则和待校验节点,使用该遍历到的规则节点对应的数据校验规则对该遍历到的规则节点对应的待校验节点的节点数据进行校验。
在一个实施例中,数据校验子模块,包括:
节点数据获取单元,用于获取该遍历到的规则节点的节点数据,该遍历到的规则节点的节点数据包括至少一个规则代码;
校验规则确定单元,用于读取校验规则配置文件,将该校验规则配置文件中与该至少一个规则代码对应的至少一个数据校验规则确定为该遍历到的规则节点对应的数据校验规则。
在一个实施例中,数据校验子模块,包括:
节点类型确定单元,用于确定该遍历到的规则节点对应的数据类型;
第一待校验节点确定单元,用于在该遍历到的规则节点对应的数据类型为第一类型时,将N个待校验节点中,层级信息与该遍历到的规则节点的层级信息相同的待校验节点确定为该遍历到的规则节点对应的待校验节点;
第二待校验节点确定单元,用于在该遍历到的规则节点对应的数据类型为第二类型时,将N个待校验节点中,层级信息与该遍历到的规则节点的层级信息相同的目标待校验节点确定为该遍历到的规则节点对应的待校验节点,确定该遍历到的规则节点对应的子级规则节点,将该目标待校验节点对应的所有子级待校验节点确定为该子级规则节点对应的待校验节点。
在一个实施例中,该遍历到的规则节点对应的待校验节点的数量为一个或多个;数据校验子模块,包括:
数据校验单元,用于在该遍历到的规则节点对应的待校验节点的数量为多个时,使用该遍历到的规则节点对应的数据校验规则分别对该遍历到的规则节点对应的各个待校验节点的节点数据进行校验。
在一个实施例中,规则描述数据确定模块,还用于从配置中心获取与该接收到的JSON数据的业务标识对应的规则描述数据。
在一个实施例中,本发明提供的数据校验装置还包括以下模块:
业务树结构获取模块,用于获取多个对应不同业务的树结构JSON数据,每个业务的树结构JSON数据包含至少一个数据节点;
配置信息确定模块,用于确定各个树结构JSON数据对应的校验规则配置信息,校验规则配置信息用于描述各个树结构JSON数据包含的全部或部分数据节点对应的规则代码;
规则描述数据获得模块,用于根据各个树结构JSON数据对应的校验规则配置信息将该各个树结构JSON数据的全部或部分数据节点进行赋值,得到各个业务对应的规则描述数据。
关于数据校验装置的具体限定可以参见上文中对于数据校验方法的限定,在此不再赘述。上述数据校验装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图8 所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储对应不同业务的规则描述数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据校验方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
在检测到接收到的数据为JSON数据时,根据接收到的JSON数据得到包含N个待校验节点的树结构数据;确定与该接收到的JSON数据的业务标识对应的规则描述数据,规则描述数据是包含M个规则节点的树结构数据,M个规则节点中有K个规则描述节点,规则描述节点是对应有数据校验规则的规则节点,其中,N>=M,M>=K,N、M、K皆为大于0的正整数;使用各个规则描述节点对应的数据校验规则对该各个规则描述节点对应的待校验节点的节点数据进行校验。
在一个实施例中,处理器执行计算机程序,实现使用各个规则描述节点对应的数据校验规则对该各个规则节点对应的待校验节点的节点数据进行校验时,还实现以下步骤:
确定规则描述数据对应的遍历方式;按照该遍历方式递归遍历规则描述数据包含的M个规则节点,在确定遍历到的规则节点属于规则描述节点时,确定该遍历到的规则节点对应的数据校验规则和待校验节点,使用该遍历到的规则节点对应的数据校验规则对该遍历到的规则节点对应的待校验节点的节点数据进行校验。
在一个实施例中,处理器执行计算机程序,实现确定遍历到的规则节点对应的数据校验规则时,还实现以下步骤:
获取该遍历到的规则节点的节点数据,该遍历到的规则节点的节点数据包括至少一个规则代码;读取校验规则配置文件,将该校验规则配置文件中与该至少一个规则代码对应的至少一个数据校验规则确定为该遍历到的规则节点对应的数据校验规则。
在一个实施例中,处理器执行计算机程序,实现确定该遍历到的规则节点对应的待校验节点时,还实现以下步骤:
确定该遍历到的规则节点对应的数据类型;若该遍历到的规则节点对应的数据类型为第一类型,将N个待校验节点中,层级信息与该遍历到的规则节点的层级信息相同的待校验节点确定为该遍历到的规则节点对应的待校验节点;若该遍历到的规则节点对应的数据类型为第二类型,将N个待校验节点中,层级信息与该遍历到的规则节点的层级信息相同的目标待校验节点确定为该遍历到的规则节点对应的待校验节点,确定该遍历到的规则节点对应的子级规则节点,将该目标待校验节点对应的所有子级待校验节点确定为该子级规则节点对应的待校验节点。
在一个实施例中,该遍历到的规则节点对应的待校验节点的数量为一个或多个;处理器执行计算机程序,实现使用该遍历到的规则节点对应的数据校验规则对该遍历到的规则节点对应的待校验节点的节点数据进行校验时,还实现以下步骤:
若该遍历到的规则节点对应的待校验节点的数量为多个,使用该遍历到的规则节点对应的数据校验规则分别对该遍历到的规则节点对应的各个待校验节点的节点数据进行校验。
在一个实施例中,处理器执行计算机程序,实现确定与该接收到的 JSON数据的业务标识对应的规则描述数据时,还实现以下步骤:
从配置中心获取与该接收到的JSON数据的业务标识对应的规则描述数据。
在一个实施例中,处理器执行计算机程序时,还实现以下步骤:
获取多个对应不同业务的树结构JSON数据,每个业务的树结构JSON 数据包含至少一个数据节点;确定各个树结构JSON数据对应的校验规则配置信息,校验规则配置信息用于描述各个树结构JSON数据包含的全部或部分数据节点对应的规则代码;根据各个树结构JSON数据对应的校验规则配置信息将该各个树结构JSON数据的全部或部分数据节点进行赋值,得到各个业务对应的规则描述数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
在检测到接收到的数据为JSON数据时,根据接收到的JSON数据得到包含N个待校验节点的树结构数据;确定与该接收到的JSON数据的业务标识对应的规则描述数据,规则描述数据是包含M个规则节点的树结构数据,M个规则节点中有K个规则描述节点,规则描述节点是对应有数据校验规则的规则节点,其中,N>=M,M>=K,N、M、K皆为大于0的正整数;使用各个规则描述节点对应的数据校验规则对该各个规则描述节点对应的待校验节点的节点数据进行校验。
在一个实施例中,计算机程序被处理器执行,使用各个规则描述节点对应的数据校验规则对该各个规则节点对应的待校验节点的节点数据进行校验时,还实现以下步骤:
确定规则描述数据对应的遍历方式;按照该遍历方式递归遍历规则描述数据包含的M个规则节点,在确定遍历到的规则节点属于规则描述节点时,确定该遍历到的规则节点对应的数据校验规则和待校验节点,使用该遍历到的规则节点对应的数据校验规则对该遍历到的规则节点对应的待校验节点的节点数据进行校验。
在一个实施例中,计算机程序被处理器执行,确定遍历到的规则节点对应的数据校验规则时,还实现以下步骤:
获取该遍历到的规则节点的节点数据,该遍历到的规则节点的节点数据包括至少一个规则代码;读取校验规则配置文件,将该校验规则配置文件中与该至少一个规则代码对应的至少一个数据校验规则确定为该遍历到的规则节点对应的数据校验规则。
在一个实施例中,计算机程序被处理器执行,确定该遍历到的规则节点对应的待校验节点时,还实现以下步骤:
确定该遍历到的规则节点对应的数据类型;若该遍历到的规则节点对应的数据类型为第一类型,将N个待校验节点中,层级信息与该遍历到的规则节点的层级信息相同的待校验节点确定为该遍历到的规则节点对应的待校验节点;若该遍历到的规则节点对应的数据类型为第二类型,将N个待校验节点中,层级信息与该遍历到的规则节点的层级信息相同的目标待校验节点确定为该遍历到的规则节点对应的待校验节点,确定该遍历到的规则节点对应的子级规则节点,将该目标待校验节点对应的所有子级待校验节点确定为该子级规则节点对应的待校验节点。
在一个实施例中,该遍历到的规则节点对应的待校验节点的数量为一个或多个;计算机程序被处理器执行,使用该遍历到的规则节点对应的数据校验规则对该遍历到的规则节点对应的待校验节点的节点数据进行校验时,还实现以下步骤:
若该遍历到的规则节点对应的待校验节点的数量为多个,使用该遍历到的规则节点对应的数据校验规则分别对该遍历到的规则节点对应的各个待校验节点的节点数据进行校验。
在一个实施例中,计算机程序被处理器执行,确定与该接收到的JSON 数据的业务标识对应的规则描述数据时,还实现以下步骤:
从配置中心获取与该接收到的JSON数据的业务标识对应的规则描述数据。
在一个实施例中,计算机程序被处理器执行时,还实现以下步骤:
获取多个对应不同业务的树结构JSON数据,每个业务的树结构JSON 数据包含至少一个数据节点;确定各个树结构JSON数据对应的校验规则配置信息,校验规则配置信息用于描述各个树结构JSON数据包含的全部或部分数据节点对应的规则代码;根据各个树结构JSON数据对应的校验规则配置信息将该各个树结构JSON数据的全部或部分数据节点进行赋值,得到各个业务对应的规则描述数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM) 或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种数据校验方法,其特征在于,包括:
在检测到接收到的数据为JSON数据时,根据接收到的JSON数据得到包含N个待校验节点的树结构数据;
确定与所述接收到的JSON数据的业务标识对应的规则描述数据,所述规则描述数据是包含M个规则节点的树结构数据,所述M个规则节点中有K个规则描述节点,规则描述节点是对应有数据校验规则的规则节点,其中,N>=M,M>=K,N、M、K皆为大于0的正整数;
使用各个规则描述节点对应的数据校验规则对所述各个规则描述节点对应的待校验节点的节点数据进行校验,包括:
确定所述规则描述数据对应的遍历方式;
按照所述遍历方式递归遍历所述规则描述数据包含的M个规则节点,在确定遍历到的规则节点属于规则描述节点时,确定所述遍历到的规则节点对应的数据校验规则和待校验节点,使用所述遍历到的规则节点对应的数据校验规则对所述遍历到的规则节点对应的待校验节点的节点数据进行校验;
其中,确定所述遍历到的规则节点对应的待校验节点,包括:
确定所述遍历到的规则节点对应的数据类型;
若所述遍历到的规则节点对应的数据类型为第一类型,将所述N个待校验节点中,层级信息与所述遍历到的规则节点的层级信息相同的待校验节点确定为所述遍历到的规则节点对应的待校验节点;
若所述遍历到的规则节点对应的数据类型为第二类型,将所述N个待校验节点中,层级信息与所述遍历到的规则节点的层级信息相同的目标待校验节点确定为所述遍历到的规则节点对应的待校验节点,确定所述遍历到的规则节点对应的子级规则节点,将所述目标待校验节点对应的所有子级待校验节点确定为所述子级规则节点对应的待校验节点。
2.如权利要求1所述的数据校验方法,其特征在于,
所述确定所述遍历到的规则节点对应的数据校验规则,包括:
获取所述遍历到的规则节点的节点数据,所述遍历到的规则节点的节点数据包括至少一个规则代码;
读取校验规则配置文件,将所述校验规则配置文件中与所述至少一个规则代码对应的至少一个数据校验规则确定为所述遍历到的规则节点对应的数据校验规则。
3.如权利要求1所述的数据校验方法,其特征在于,
所述遍历到的规则节点对应的待校验节点的数量为一个或多个;
所述使用所述遍历到的规则节点对应的数据校验规则对所述遍历到的规则节点对应的待校验节点的节点数据进行校验,包括:
若所述遍历到的规则节点对应的待校验节点的数量为多个,使用所述遍历到的规则节点对应的数据校验规则分别对所述遍历到的规则节点对应的各个待校验节点的节点数据进行校验。
4.如权利要求1所述的数据校验方法,其特征在于,所述确定与所述接收到的JSON数据的业务标识对应的规则描述数据,包括:
从配置中心获取与所述接收到的JSON数据的业务标识对应的规则描述数据。
5.如权利要求1所述的数据校验方法,其特征在于,所述方法还包括:
获取多个对应不同业务的树结构JSON数据,每个业务的树结构JSON数据包含至少一个数据节点;
确定各个树结构JSON数据对应的校验规则配置信息;所述校验规则配置信息用于描述所述各个树结构JSON数据包含的全部或部分数据节点对应的规则代码;
根据各个树结构JSON数据对应的校验规则配置信息将所述各个树结构JSON数据的全部或部分数据节点进行赋值,得到各个业务对应的规则描述数据。
6.一种实现权利要求1所述数据校验方法的装置,其特征在于,包括:
树结构获得模块,用于在检测到接收到的数据为JSON数据时,根据接收到的JSON数据得到包含N个待校验节点的树结构数据;
规则描述数据确定模块,用于确定与所述接收到的JSON数据的业务标识对应的规则描述数据,所述规则描述数据是包含M个规则节点的树结构数据,所述M个规则节点中有K个规则描述节点,规则描述节点是对应有数据校验规则的规则节点,其中,N>=M,M>=K,N、M、K皆为大于0的正整数;
数据校验模块,用于使用各个规则描述节点对应的数据校验规则对所述各个规则描述节点对应的待校验节点的节点数据进行校验。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010523597.3A CN111736917B (zh) | 2020-06-10 | 2020-06-10 | 数据校验方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010523597.3A CN111736917B (zh) | 2020-06-10 | 2020-06-10 | 数据校验方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111736917A CN111736917A (zh) | 2020-10-02 |
CN111736917B true CN111736917B (zh) | 2022-11-18 |
Family
ID=72648688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010523597.3A Active CN111736917B (zh) | 2020-06-10 | 2020-06-10 | 数据校验方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111736917B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113126999A (zh) * | 2021-04-23 | 2021-07-16 | 中国工商银行股份有限公司 | 参数校验方法、参数校验装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190073599A1 (en) * | 2017-09-01 | 2019-03-07 | Capital One Services, Llc | Systems and methods for expediting rule-based data processing |
CN109542664A (zh) * | 2018-12-13 | 2019-03-29 | 平安科技(深圳)有限公司 | 基于人工智能的文件校验方法、装置及计算机设备 |
CN110968322A (zh) * | 2019-11-27 | 2020-04-07 | 北京旷视科技有限公司 | Json数据的处理方法、装置和电子系统 |
-
2020
- 2020-06-10 CN CN202010523597.3A patent/CN111736917B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190073599A1 (en) * | 2017-09-01 | 2019-03-07 | Capital One Services, Llc | Systems and methods for expediting rule-based data processing |
CN109542664A (zh) * | 2018-12-13 | 2019-03-29 | 平安科技(深圳)有限公司 | 基于人工智能的文件校验方法、装置及计算机设备 |
CN110968322A (zh) * | 2019-11-27 | 2020-04-07 | 北京旷视科技有限公司 | Json数据的处理方法、装置和电子系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111736917A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062788B (zh) | 测试用例生成方法、装置、计算机设备和存储介质 | |
CN108319719B (zh) | 数据库数据校验方法、装置、计算机设备和存储介质 | |
CN108427613B (zh) | 异常接口定位方法、装置、计算机设备和存储介质 | |
CN111475376B (zh) | 处理测试数据的方法、装置、计算机设备和存储介质 | |
CN111132145B (zh) | 网络通信安全监测方法、装置、服务器及网络通信系统 | |
CN111290742A (zh) | 参数验证方法、装置、电子设备及可读存储介质 | |
CN108256322B (zh) | 安全测试方法、装置、计算机设备和存储介质 | |
Weigert et al. | Practical experiences in using model-driven engineering to develop trustworthy computing systems | |
CN109324958B (zh) | 一种rest统一校验方法、装置、设备及可读存储介质 | |
CN112162924A (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN112015752A (zh) | 一种数据动态查询的方法、装置、电子设备和存储介质 | |
CN114610635A (zh) | 接口测试用例生成方法、装置、计算机设备及存储介质 | |
CN111736917B (zh) | 数据校验方法、装置、计算机设备和存储介质 | |
CN112363937A (zh) | 差异覆盖率测试方法、装置、计算机设备和存储介质 | |
CN111723019A (zh) | 接口的调试方法及系统 | |
CN112395339B (zh) | 系统间数据准入校验方法、装置、计算机设备和存储介质 | |
CN112511384B (zh) | 流量数据处理方法、装置、计算机设备和存储介质 | |
CN112559352A (zh) | 接口测试的方法、装置、设备及存储介质 | |
CN117195129A (zh) | 一种基于沙箱系统的异常处理方法及相关设备 | |
CN113360300A (zh) | 接口调用链路生成方法、装置、设备及可读存储介质 | |
CN112612706A (zh) | 自动化测试方法、计算机设备及存储介质 | |
CN112181599A (zh) | 模型训练方法、装置及存储介质 | |
CN112286786A (zh) | 数据库的测试方法、装置和服务器 | |
CN114429408B (zh) | 智能变电站配置文件的校核方法、装置、设备和系统 | |
CN116342256A (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 |