CN108132880A - 一种参数校验方法及装置 - Google Patents
一种参数校验方法及装置 Download PDFInfo
- Publication number
- CN108132880A CN108132880A CN201711397898.0A CN201711397898A CN108132880A CN 108132880 A CN108132880 A CN 108132880A CN 201711397898 A CN201711397898 A CN 201711397898A CN 108132880 A CN108132880 A CN 108132880A
- Authority
- CN
- China
- Prior art keywords
- parameter
- verified
- verification
- field
- type
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种参数校验方法及装置,所述方法包括:S1,根据客户端发送的http请求中待校验参数的名称,从目标json文件中预先定义的第一字段中获取与所述待校验参数的名称相同的第二字段对应的校验规则,所述第二字段与所述校验规则在所述目标json文件中关联存储;S2,根据所述第二字段对应的校验规则,对所述参数进行校验。本发明通过将校验规则配置在json文件中,直接根据json文件中定义的校验规则对客户端http请求中传入的待校验参数进行各种校验,对于相同参数的校验不需要重复编写校验逻辑代码,提高了开发效率;此外,当校验需求发生变化时,只需要对json文件中定义的校验规则进行更改,便于维护。
Description
技术领域
本发明属于软件开发领域,更具体地,涉及一种参数校验方法及装置。
背景技术
当用户在客户端输入信息,点击提交按钮后,所述客户端会向服务器发送http请求,服务器接收到所述http请求后对所述参数进行校验。
所述http请求中包含所述输入信息和所述输入信息对应的参数名称。所述输入信息为对应的参数的值。服务器对所述参数进行校验是指判断用户输入的参数的值是否符合要求,如非空字符校验、数字校验、电话校验、坐标校验和正则校验等。如果参数的值符合要求,则进入其他页面或对用户输入的参数的值进行保存。如果参数的值不符合要求,则返回错误信息。
现有技术中通常为需要校验的每个参数编写校验代码,使用校验代码对各参数进行校验,导致代码重复冗杂,开发效率低。
发明内容
为克服上述现有技术中校验代码重复冗杂,开发效率低的问题或者至少部分地解决上述问题,本发明提供了一种参数校验方法及装置。
根据本发明的第一方面,提供一种参数校验方法,包括:
S1,根据客户端发送的http请求中参数的名称,从目标json文件中预先定义的第一字段中获取与所述待校验参数的名称相同的第二字段对应的校验规则,所述第二字段与所述校验规则在所述目标json文件中关联存储;
S2,根据所述第二字段对应的校验规则,对所述待校验参数进行校验。
具体地,所述步骤S1之前还包括:
在目标json文件中定义各第一字段和各所述第一字段对应的校验规则;
所述目标json文件包括目标校验编号、目标校验名称和各所述第二字段对应的校验规则;
所述校验规则的属性包括字段名称、字段描述、字段类型、是否为空、默认值、最大值、最小值、正则表达式、关联校验编号和提醒中的多种,所述字段名称是唯一的;
其中,字段名称、字段描述、字段类型和是否为空的值不为空。
具体地,所述字段类型包括字符型、整型、长整型、浮点型、布尔型、日期型、对象型和数组型中的一种;
当所述字段类型为对象型时,所述关联校验编号不为空;
当所述关联校验编号不为空时,所述数组型为对象类型的列表;或者,
当所述关联校验编号为空时,所述数组型为字符串类型的列表。
具体地,所述步骤S2还包括:
定义一个类,所述类中的属性名称与所述目标json文件中各第二字段的名称相同,所述类中的属性类型为封装类型;
对所述类进行实例化,生成对象;
若所述待校验参数的校验结果为正确,则将所述待校验参数封装到所述对象中。
具体地,所述步骤S2具体包括:
若所述待校验参数的值不为空,则根据所述校验规则对所述待校验参数的值进行校验;或者,
若所述待校验参数的值为空且所述对象中与所述待校验参数的名称相同的属性的初始值不为空,则根据所述校验规则对所述初始值进行校验;或者,
若所述待校验参数的值和所述初始值均为空,且所述第二字段的默认值不为空,则根据所述校验规则对所述默认值进行校验。
具体地,所述步骤S2具体包括:
若所述第二字段的关联校验编号不为空,则使用所述目标json文件中的校验规则对所述待校验参数进行第一次校验;
根据所述关联校验编号对应的json文件中的校验规则,对所述待校验参数进行第二次校验;
若所述第一次校验的结果和所述第二次校验的结果均为正确,则获知所述待校验参数的最终校验结果为正确。
具体地,所述步骤S2还包括:
若所述待校验参数的校验结果为错误,则返回所述待校验参数校验的错误信息。
根据本发明的第二方面,提供一种参数校验装置,包括:
获取单元,用于根据客户端发送的http请求中待校验参数的名称,从目标json文件中预先定义的第一字段中获取与所述待校验参数的名称相同的第二字段对应的校验规则,所述第二字段与所述校验规则在所述目标json文件中关联存储;
校验单元,用于根据所述第二字段对应的校验规则,对所述待校验参数进行校验。
根据本发明的第三方面,提供一种参数校验设备,包括:
至少一个处理器、至少一个存储器和总线;其中,
所述处理器和存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如前所述的方法。
根据本发明的第四方面,提供一种非暂态计算机可读存储介质,用于存储如前所述方法的计算机程序。
本发明提供一种参数校验方法及装置,该方法通过将校验规则配置在json文件中,直接根据json文件中定义的校验规则对客户端http请求中传入的待校验参数进行各种校验,对于相同参数的校验不需要重复编写校验逻辑代码,提供了开发效率;此外,当校验需求发生变化时,只需要对json文件中定义的校验规则进行更改,便于维护。
附图说明
图1为本发明实施例提供的参数校验方法整体流程示意图;
图2为本发明实施例提供的参数校验装置整体结构示意图;
图3为本发明实施例提供的参数校验设备整体结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
在本发明的一个实施例中提供一种参数校验方法,图1为本发明实施例提供的参数校验方法整体流程示意图,该方法包括:S1,根据客户端发送的http请求中待校验参数的名称,从目标json文件中预先定义的第一字段中获取与所述待校验参数的名称相同的第二字段对应的校验规则,所述第二字段与所述校验规则在所述目标json文件中关联存储;S2,根据所述第二字段对应的校验规则,对所述参数进行校验。
具体地,S1中,当用户在客户端中输入各待校验参数的值,然后点击提交后,客户端向服务器发送http请求,所述http请求包括用户输入的各待校验参数的值和名称。所述待校验参数的名称是唯一的。服务器接收所述客户端发送的http请求,对所述http请求进行解析,获取各待校验参数的名称。所述目标json文件中包含与所述待校验参数名称相同的字段。所述第一字段为所述目标json文件中的所有字段,所述第二字段为所述第一字段中与所述待校验参数的名称相同的字段。在预先定义的所述第一字段中查找所述第二字段。然后获取第二字段对应的校验规则。所述校验规则为用于校验的逻辑函数,对http请求传入的待校验参数进行校验,如非空字符校验、数字校验、电话校验、坐标校验和正则校验等。S2中,根据所述第一字段中与所述参数名称相同的第二字段对应的校验规则,对所述待校验参数进行校验。具体将所述待校验参数的值传入所述第二字段的校验规则中,使用所述校验规则对所述待校验参数进行校验。
本实施例通过将校验规则配置在json文件中,直接根据json文件中定义的校验规则对客户端http请求中传入的待校验参数进行各种校验,对于相同参数的校验不需要重复编写校验逻辑代码,提供了开发效率;此外,当校验需求发生变化时,只需要对json文件中定义的校验规则进行更改,便于维护。
在上述实施例的基础上,本实施例中所述步骤S1之前还包括:在目标json文件中定义各第一字段和各所述第一字段对应的校验规则;所述目标json文件包括目标校验编号、目标校验名称和各所述第一字段对应的校验规则;所述校验规则的属性包括字段名称、字段描述、字段类型、是否为空、默认值、最大值、最小值、正则表达式、关联校验编号和提醒中的多种,所述字段名称是唯一的;其中,字段名称、字段描述、字段类型和是否为空的值不为空。
具体地,所述第一字段为所述目标json文件中的所有字段。在目标json文件中定义各所述第一字段的校验规则。所述第一字段的名称包含http请求传入的待校验参数的名称。所述目标校验编号用于唯一标识所述目标json文件中校验。所述目标校验名称为所述json文件中校验的名称。在目标json文件中定义各第一字段的校验规则。所述目标json文件包括目标校验编号、目标校验名称和各所述第一字段的校验规则。所述校验规则的属性包括字段名称、字段描述、字段类型、是否为空、默认值、最大值、最小值、关联校验编号和提醒中的多种,所述字段名称是唯一的;其中,字段名称、字段描述、字段类型和是否为空的值不为空,其他属性的值可以为空。其中,所述关联校验编号为其他json文件的编号。
例如,所述目标json文件的内容包括:
{"checkId":"10001″,
″checkName":"createBatchOrder(实时叫单、预约叫单)接口的参数校验规则定义",
"checkFields":{
"test":"测试字段,整型,可空,默认2,最大3,最小1",
"type":"业务type(1-巴士2-货运3-乘运),整型,非空",
"ownerPhone":"乘客电话,字符型,非空",
"city":"所在城市,字符型,非空",
"startLatitude":″出发地纬度,浮点型,非空,最大90,最小-90″,
″startLongtitude″:″出发地经度,浮点型,非空,最大180,最小-180″,
″startAddress″:″出发地地址,字符型,非空″,
″destLatitude″:″目的地纬度,浮点型,非空,最大90,最小-90″,
″destLongtitude″:″目的地经度,浮点型,非空,最大180,最小-180″,
″destAddress″:″目的地地址,字符型,非空″,
″message″:"提醒,字符型,非空",
"loadDistance":"运输距离,浮点型,可空,默认0",
"timeCost":"运输时长,浮点型,非空",
"startCost":"起步价,浮点型,可空,默认0",
"distanceCost″:"行驶距离费,浮点型,非空″,
″timeFee″:″行驶时间费,浮点型,可空,默认0″,
″waitFee″:″等待超时费,浮点型,可空,默认0",
"loadFee":"搬运费,浮点型,非空",
″otherFee":″小费,浮点型,非空",
"additionalFee″:″附加费,浮点型,可空,默认0″,
″totalCost″:″总费,浮点型,非空″,
″discount″:″优惠费,浮点型,非空″,
″deduction":"余额抵扣费,浮点型,可空,默认0",
"payable":"实际支付费,浮点型,非空",
"batchOrders":"子订单数组,数组型,可空,关联校验编号10010",
"appointedTime":"预约时间,日期型,可空,最小now+15minute,提醒预约时间应在十五分钟后",
"ip":"乘客访问IP,字符型,可空",
"deviceKey":"设备标识,字符型,可空",
"orderType":"订单类型(3-普通下单4-企业下单5-摇一摇下单),整型,可空,默认3",
"orderMode":"订单模式(0-即时订单1-预约订单10-拼车订单),整型,可空,默认0",
"personNum":"上车人数,整型,可空,默认0",
"cusLat":″乘客发单时的位置纬度,浮点型,可空,默认0,最大90,最小-90″,
″cusLng″:"乘客发单时的位置经度,浮点型,可空,默认0,最大180,最小-180″,
″bussId″:″业务bussId,长整型,非空″,
″recvPhone″:″收货人电话,字符型,非空″,
″recvName":″收货人姓名,字符型,非空″
}
}
其中,“:”前面为各字段的字段名称,如“test”、“city”等。“:”后面第一部分为字段描述,如“测试字段”、“所在城市”等;第二部分为字段类型,如整型、字符型等;第三部分为是否为空,如可空或非空。后面的默认值、最大值、最小值、关联校验编号和提醒的值可以为空,也可以不为空,如″test″:″测试字段,整型,可空,默认2,最大3,最小1″中关联校验编号和提醒为空。″checkId″:″10001″表示目标校验编号为10001,″checkName″表示目标校验名称。
本实施例中通过在json文件中定义校验规则,清晰明了,可以直接将http请求中的待校验参数传入校验规则进行校验,提高了代码的重复利用率,提升了开发效率和校验速度;此外当校验需求发生变化时,只需要对json文件中定义的校验规则进行更改,便于维护。
在上述实施例的基础上,本实施例中所述字段类型包括字符型、整型、长整型、浮点型、布尔型、日期型、对象型和数组型中的一种或多种;当所述字段类型为对象型时,所述关联校验编号不为空;当所述关联校验编号不为空时,所述数组型为对象类型的列表;或者,当所述关联校验编号为空时,所述数组型为字符串类型的列表。
具体地,所述字段类型包括字符型String、整型Iteger、长整型Long、浮点型Double、布尔型Boolean、日期型Date、对象型Object、数组型中的一种或多种。当所述关联校验编号有值时,所述数组型为对象类型的列表List<Object>;当所述关联校验编号没有值时,所述数组型为字符串类型的列表List<String>。当所述字段类型为对象型时,若所述关联校验编号没有值则报错,且校验不通过。所述json文件中的拼接符号为英文逗号,不为中文逗号。
在上述各实施例的基础上,本实施例中所述步骤S2还包括:定义一个类,所述类中的属性名称与所述目标json文件中各第二字段的名称相同,所述类中的属性类型为封装类型;对所述类进行实例化,生成对象;若所述待校验参数的校验结果为正确,则将所述待校验参数封装到所述对象中。
具体地,定义一个类,所述类中的属性名称与所述目标json文件中各第二字段的字段名称相同。所述类中的属性类型为封装类型。例如定义一个类,如下所示:
public class OrderParam{
/*订单无关字段*/
public String ip;/*设备ip*/
public String city;/*所在城市*/
public String deviceKey;/*设备标识*/
public String[]availableBussIdArray;/*可支持的bussiness_id*/
public Boolean isUnlimited;/*乘客是否受限制*/
/*订单通用字段*/
public String ownerPhone;/*乘客电话*/
public Long bussId;/*业务bussId*/
public Integer type;/*业务type(1-巴士2-货运3-乘运)*/
public Integer orderType;/*订单类型(3-普通下单4-企业下单5-摇一摇下单)*/
public Integer orderMode;/*订单模式(0-即时订单1-预约订单10-拼车订单)*/
public Double startLatitude;/*出发地纬度*/
public Double startLongtitude;/*出发地经度*/
public String startAddress;/*出发地地址*/
public Double destLatitude;/*目的地纬度*/
public Double destLongtitude;/*目的地经度*/
public String destAddress;/*目的地地址*/
public Double cusLat;/*乘客发单时的位置纬度*/
public Double cusLng;/*乘客发单时的位置经度*/
public String recvPhone;/*收货人电话*/
public String recvName;/*收货人姓名*/
public String message;/*提醒*/
public Double loadDistance;/*运输距离*/
public Double timeCost;/*运输时长*/
public Integer personNum;/*上车人数*/
/*订单 费用相关字段*/
public Double startCost;/*起步价*/
public Double distanceCost;/*行驶距离费*/
public Double timeFee;/*行驶时间费*/
public Double waitFee;/*等待超时费*/
public Double loadFee;/*搬运费*/
public Double otherFee;/*小费*/
public Double additionalFee;/*附加费*/
public Double totalCost;/*总费*/
public Double discount;/*优惠费*/
public Double deduction;/*余额抵扣费*/
public Double payable;/*实际支付费*/
/*子订单List格式*/
public List<OrderBatch>batchOrders;
/*预约订单特有字段*/
public Date appointedTime;/*预约时间*/
/*摇一摇订单特有字段*/
public List<String>walkerPhones;/*司机电话列表*/
/*企业订单特有字段*/
public Long enterpriseId;/*企业ID*/
}
获取http请求传入的待校验参数node,即JsonNodenode=getBody()。对所述类OrderParam进行实例化,生成对象orderParam,即OrderParam orderParam=newOrderParam()。指定用于对所述待校验参数进行校验的目标校验编号checkId,即LongcheckId=WYC_NORMAL_CHECK_ID。使用校验校验规则对所述待校验参数进行校验,即ParamCheckResult checkResult=ParamCheckUtil.checkParams(node,orderParam,checkId)。checkResult为校验结果。若所述待校验参数的校验结果为正确,则将所述待校验参数封装到所述对象orderParam中。
在上述实施例的基础上,本实施例中所述步骤S2具体包括:若所述待校验参数的值不为空,则根据所述校验规则对所述待校验参数的值进行校验;或者,若所述待校验参数的值为空且所述对象中与所述待校验参数的名称相同的属性的初始值不为空,则根据所述校验规则对所述初始值进行校验;或者,若所述待校验参数的值和所述初始值均为空,且所述第二字段的默认值不为空,则根据所述校验规则对所述默认值进行校验。
具体地,在对所述待校验参数进行校验时,首先考虑将所述待校验参数的值传入校验规则进行校验。若所述待校验参数的值为空,则考虑将所述对象中与所述待校验参数的名称相同的属性的初始值传入校验规则进行校验。若所述初始值为空,则考虑将所述目标json文件中与所述待校验参数名称相同的第二字段的默认值传入校验规则进行校验。
在上述实施例的基础上,本实施例中所述步骤S2具体包括:若所述第二字段的关联校验编号不为空,则使用所述目标json文件中的校验规则对所述待校验参数进行第一次校验;根据所述关联校验编号对应的json文件中的校验规则,对所述待校验参数进行第二次校验;若所述第一次校验的结果和所述第二次校验的结果均为正确,则获知所述待校验参数的最终校验结果为正确。
具体地,当第二字段的关联校验编号不为空时,如″batchOrders″:″子订单数组,数组型,可空,关联校验编号10010″找那个,关联校验编号为10010,则首先使用所述目标json文件中的校验规则对所述待校验参数进行第一次校验。获取所述关联校验编号对应其他json文件,是要其他json文件中的校验规则对所述待校验参数进行第二次校验。若两次校验的结果都为正确,则所述待校验参数的最终校验结果才为正确,否则不正确。
在上述各实施例的基础上,本实施例中所述步骤S2还包括:若所述待校验参数的校验结果为错误,则返回所述待校验参数校验的错误信息。
具体地,若待校验参数的校验结果为错误,则返回参加校验的错误信息,所述错误信息包括参数名称和错误原因。
在本发明的另一个实施例中提供一种参数校验装置,图2为本发明实施例提供的参数校验装置整体结构示意图,该装置包括获取单元1和校验单元2,其中:
所述获取单元1用于根据客户端发送的http请求中待校验参数的名称,从目标json文件中预先定义的第一字段中获取与所述待校验参数的名称相同的第二字段对应的校验规则,所述第二字段与所述校验规则在所述目标json文件中关联存储;用于根据所述第二字段对应的校验规则,对所述待校验参数进行校验。
具体地,当用户在客户端中输入各待校验参数的值,然后点击提交后,客户端向服务器发送http请求,所述http请求包括用户输入的各待校验参数的值和名称。所述待校验参数的名称是唯一的。服务器接收所述客户端发送的http请求,对所述http请求进行解析,获取各待校验参数的名称。所述目标json文件中包含与所述参数名称相同的字段。所述第一字段为所述目标json文件中的所有字段,所述第二字段为与所述参数的名称相同的字段。所述获取单元1在预先定义的第一字段中查找所述第二字段。然后获取第二字段对应的校验规则。所述校验规则为用于校验的逻辑函数,对http请求传入的待校验参数进行校验,如非空字符校验、数字校验、电话校验、坐标校验和正则校验等。所述校验单元2根据所述第一字段中与所述待校验参数名称相同的第二字段对应的校验规则,对所述待校验参数进行校验。具体将所述待校验参数的值传入所述第二字段的校验规则中,使用所述校验规则对所述待校验参数进行校验。
本实施例通过将校验规则配置在json文件中,直接根据json文件中定义的校验规则对客户端http请求中传入的待校验参数进行各种校验,对于相同参数的校验不需要重复编写校验逻辑代码,提供了开发效率;此外,当校验需求发生变化时,只需要对json文件中定义的校验规则进行更改,便于维护。
在上述实施例的基础上,本实施例中所述装置还包括定义单元,用于:在目标json文件中定义各第一字段和各所述第一字段对应的校验规则;所述目标json文件包括目标校验编号、目标校验名称和各所述第一字段的校验规则;所述校验规则的属性包括字段名称、字段描述、字段类型、是否为空、默认值、最大值、最小值、正在表达式、关联校验编号和提醒中的多种,所述字段名称是唯一的;其中,字段名称、字段描述、字段类型和是否为空的值不为空。
在上述实施例的基础上,本实施例中所述字段类型包括字符型、整型、长整型、浮点型、布尔型、日期型、对象型和数组型中的一种或多种;当所述字段类型为对象型时,所述关联校验编号不为空;当所述关联校验编号不为空时,所述数组型为对象类型的列表;或者,当所述关联校验编号为空时,所述数组型为字符串类型的列表。
在上述各实施例的基础上,本实施例中所述校验单元还用于:定义一个类,所述类中的属性名称与所述目标json文件中各第二字段的名称相同,所述类中的属性类型为封装类型;对所述类进行实例化,生成对象;若所述待校验参数的校验结果为正确,则将所述待校验参数封装到所述对象中。
在上述实施例的基础上,本实施例中所述校验单元具体用于:若所述待校验参数的值不为空,则根据所述校验规则对所述待校验参数的值进行校验;或者,若所述待校验参数的值为空且所述对象中与所述待校验参数的名称相同的属性的初始值不为空,则根据所述校验规则对所述初始值进行校验;或者,若所述待校验参数的值和所述初始值均为空,且所述第二字段的默认值不为空,则根据所述校验规则对所述默认值进行校验。
在上述实施例的基础上,本实施例中所述校验单元具体用于:若所述第二字段的关联校验编号不为空,则使用所述目标json文件中的校验规则对所述待校验参数进行第一次校验;根据所述关联校验编号对应的json文件中的校验规则,对所述待校验参数进行第二次校验;若所述第一次校验的结果和所述第二次校验的结果均为正确,则获知所述待校验参数的最终校验结果为正确。
在上述实施例的基础上,本实施例中所述校验单元还用于:在所述待校验参数的校验结果为错误时,则返回所述待校验参数校验的错误信息。
本实施例提供一种参数校验设备,图3为本发明实施例提供的参数校验设备整体结构示意图,该设备包括:至少一个处理器31、至少一个存储器32和总线33;其中,
所述处理器31和存储器32通过所述总线33完成相互间的通信;
所述存储器32存储有可被所述处理器31执行的程序指令,所述处理器调用所述程序指令能够执行上述各方法实施例所提供的方法,例如包括:S1,根据客户端发送的http请求中待校验参数的名称,从目标json文件中预先定义的第一字段中获取与所述待校验参数的名称相同的第二字段对应的校验规则,所述第二字段与所述校验规则在所述目标json文件中关联存储;S2,根据所述第二字段对应的校验规则,对所述参数进行校验。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:S1,根据客户端发送的http请求中待校验参数的名称,从目标json文件中预先定义的第一字段中获取与所述待校验参数的名称相同的第二字段对应的校验规则,所述第二字段与所述校验规则在所述目标json文件中关联存储;S2,根据所述第二字段对应的校验规则,对所述参数进行校验。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的参数校验设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种参数校验方法,其特征在于,包括:
S1,根据客户端发送的http请求中待校验参数的名称,从目标json文件中预先定义的第一字段中获取与所述待校验参数的名称相同的第二字段对应的校验规则,所述第二字段与所述校验规则在所述目标json文件中关联存储;
S2,根据所述第二字段对应的校验规则,对所述待校验参数进行校验。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1之前还包括:
在目标json文件中定义各第一字段和各所述第一字段对应的校验规则;
所述目标json文件包括目标校验编号、目标校验名称和各所述第一字段对应的校验规则;
所述校验规则的属性包括字段名称、字段描述、字段类型、是否为空、默认值、最大值、最小值、正则表达式、关联校验编号和提醒中的多种,所述字段名称是唯一的;
其中,字段名称、字段描述、字段类型和是否为空的值不为空。
3.根据权利要求2所述的方法,其特征在于,所述字段类型包括字符型、整型、长整型、浮点型、布尔型、日期型、对象型和数组型中的一种或多种;
当所述字段类型为对象型时,所述关联校验编号不为空;
当所述关联校验编号不为空时,所述数组型为对象类型的列表;或者,
当所述关联校验编号为空时,所述数组型为字符串类型的列表。
4.根据权利要求1-3任一所述的方法,其特征在于,所述步骤S2还包括:
定义一个类,所述类中的属性名称与所述目标json文件中各第二字段的名称相同,所述类中的属性类型为封装类型;
对所述类进行实例化,生成对象;
若所述待校验参数的校验结果为正确,则将所述待校验参数封装到所述对象中。
5.根据权利要求4所述的方法,其特征在于,所述步骤S2具体包括:
若所述待校验参数的值不为空,则根据所述校验规则对所述待校验参数的值进行校验;或者,
若所述待校验参数的值为空且所述对象中与所述待校验参数的名称相同的属性的初始值不为空,则根据所述校验规则对所述初始值进行校验;或者,
若所述待校验参数的值和所述初始值均为空,且所述第二字段的默认值不为空,则根据所述校验规则对所述默认值进行校验。
6.根据权利要求2所述的方法,其特征在于,所述步骤S2具体包括:
若所述第二字段的关联校验编号不为空,则使用所述目标json文件中的校验规则对所述待校验参数进行第一次校验;
根据所述关联校验编号对应的json文件中的校验规则,对所述待校验参数进行第二次校验;
若所述第一次校验的结果和所述第二次校验的结果均为正确,则获知所述待校验参数的最终校验结果为正确。
7.根据权利要求1-3任一所述的方法,其特征在于,所述步骤S2还包括:
若所述待校验参数的校验结果为错误,则返回所述待校验参数校验的错误信息。
8.一种参数校验装置,其特征在于,包括:
获取单元,用于根据客户端发送的http请求中待校验参数的名称,从目标json文件中预先定义的第一字段中获取与所述待校验参数的名称相同的第二字段对应的校验规则,所述第二字段与所述校验规则在所述目标json文件中关联存储;
校验单元,用于根据所述第二字段对应的校验规则,对所述待校验参数进行校验。
9.一种参数校验设备,其特征在于,包括:
至少一个处理器、至少一个存储器和总线;其中,
所述处理器和存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711397898.0A CN108132880B (zh) | 2017-12-21 | 2017-12-21 | 一种参数校验方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711397898.0A CN108132880B (zh) | 2017-12-21 | 2017-12-21 | 一种参数校验方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108132880A true CN108132880A (zh) | 2018-06-08 |
CN108132880B CN108132880B (zh) | 2020-07-07 |
Family
ID=62392190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711397898.0A Active CN108132880B (zh) | 2017-12-21 | 2017-12-21 | 一种参数校验方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108132880B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032886A (zh) * | 2018-06-21 | 2018-12-18 | 携程旅游网络技术(上海)有限公司 | Json报文比对方法及系统 |
CN109101812A (zh) * | 2018-08-28 | 2018-12-28 | 北京神州绿盟信息安全科技股份有限公司 | 一种参数校验方法、装置、计算装置和存储介质 |
CN109271152A (zh) * | 2018-08-17 | 2019-01-25 | 五八有限公司 | 一种输入框内容的校验方法、装置、存储介质及终端 |
CN109413452A (zh) * | 2018-09-30 | 2019-03-01 | 武汉斗鱼网络科技有限公司 | 基于不同方式的弹幕校验方法、装置、终端及存储介质 |
CN109510824A (zh) * | 2018-11-12 | 2019-03-22 | 中国银行股份有限公司 | 一种接口报文的校验方法及装置 |
CN109783562A (zh) * | 2019-01-17 | 2019-05-21 | 北京沃东天骏信息技术有限公司 | 一种业务处理方法和装置 |
CN109800168A (zh) * | 2019-01-24 | 2019-05-24 | 北京奇艺世纪科技有限公司 | 软件的操作事件数据的测试方法及装置 |
CN110233842A (zh) * | 2019-06-10 | 2019-09-13 | 腾讯科技(深圳)有限公司 | 一种请求的校验方法和相关装置 |
CN110287383A (zh) * | 2019-06-28 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种字段信息检验方法及装置 |
CN110659019A (zh) * | 2019-09-26 | 2020-01-07 | 北京金山云网络技术有限公司 | 参数校验方法、装置和服务器 |
CN110765422A (zh) * | 2018-07-25 | 2020-02-07 | 北京京东尚科信息技术有限公司 | 一种参数校验方法和装置 |
CN111064725A (zh) * | 2019-12-12 | 2020-04-24 | 广州鲁邦通物联网科技有限公司 | 一种代码零入侵接口校验方法和校验装置 |
CN111090788A (zh) * | 2019-12-03 | 2020-05-01 | 广州品唯软件有限公司 | json文件的比对方法、装置、存储介质及计算机设备 |
CN111191246A (zh) * | 2019-12-19 | 2020-05-22 | 杭州安恒信息技术股份有限公司 | 一种基于Spring注解的安全开发校验方法 |
CN111444224A (zh) * | 2020-03-24 | 2020-07-24 | 政采云有限公司 | 一种业务数据校验方法及装置 |
CN111459911A (zh) * | 2020-03-30 | 2020-07-28 | 上海云励科技有限公司 | 业务数据的处理方法及设备 |
CN111835710A (zh) * | 2020-05-29 | 2020-10-27 | 中国平安财产保险股份有限公司 | 校验请求体的方法、装置、计算机设备和存储介质 |
CN112015763A (zh) * | 2020-07-14 | 2020-12-01 | 北京旷视科技有限公司 | Json数据校验方法、装置、电子设备和计算机可读介质 |
CN112269706A (zh) * | 2020-11-16 | 2021-01-26 | 北京百度网讯科技有限公司 | 接口参数校验方法、装置、电子设备以及计算机可读介质 |
CN113517048A (zh) * | 2021-07-12 | 2021-10-19 | 挂号网(杭州)科技有限公司 | 病案的数据校验方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104270395A (zh) * | 2014-10-24 | 2015-01-07 | 中国建设银行股份有限公司 | 一种输入数据校验的方法、装置及系统 |
CN105426164A (zh) * | 2014-09-04 | 2016-03-23 | 北大方正集团有限公司 | 一种数据的校验方法及浏览器、服务器 |
CN106991023A (zh) * | 2017-03-22 | 2017-07-28 | 深圳市彬讯科技有限公司 | 一种接口参数校验方法及组件 |
-
2017
- 2017-12-21 CN CN201711397898.0A patent/CN108132880B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426164A (zh) * | 2014-09-04 | 2016-03-23 | 北大方正集团有限公司 | 一种数据的校验方法及浏览器、服务器 |
CN104270395A (zh) * | 2014-10-24 | 2015-01-07 | 中国建设银行股份有限公司 | 一种输入数据校验的方法、装置及系统 |
CN106991023A (zh) * | 2017-03-22 | 2017-07-28 | 深圳市彬讯科技有限公司 | 一种接口参数校验方法及组件 |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032886A (zh) * | 2018-06-21 | 2018-12-18 | 携程旅游网络技术(上海)有限公司 | Json报文比对方法及系统 |
CN110765422A (zh) * | 2018-07-25 | 2020-02-07 | 北京京东尚科信息技术有限公司 | 一种参数校验方法和装置 |
CN109271152A (zh) * | 2018-08-17 | 2019-01-25 | 五八有限公司 | 一种输入框内容的校验方法、装置、存储介质及终端 |
CN109101812A (zh) * | 2018-08-28 | 2018-12-28 | 北京神州绿盟信息安全科技股份有限公司 | 一种参数校验方法、装置、计算装置和存储介质 |
CN109413452A (zh) * | 2018-09-30 | 2019-03-01 | 武汉斗鱼网络科技有限公司 | 基于不同方式的弹幕校验方法、装置、终端及存储介质 |
CN109510824A (zh) * | 2018-11-12 | 2019-03-22 | 中国银行股份有限公司 | 一种接口报文的校验方法及装置 |
CN109510824B (zh) * | 2018-11-12 | 2021-06-04 | 中国银行股份有限公司 | 一种接口报文的校验方法及装置 |
CN109783562A (zh) * | 2019-01-17 | 2019-05-21 | 北京沃东天骏信息技术有限公司 | 一种业务处理方法和装置 |
CN109783562B (zh) * | 2019-01-17 | 2024-03-01 | 北京沃东天骏信息技术有限公司 | 一种业务处理方法和装置 |
CN109800168A (zh) * | 2019-01-24 | 2019-05-24 | 北京奇艺世纪科技有限公司 | 软件的操作事件数据的测试方法及装置 |
CN110233842B (zh) * | 2019-06-10 | 2021-07-27 | 腾讯科技(深圳)有限公司 | 一种请求的校验方法和相关装置 |
CN110233842A (zh) * | 2019-06-10 | 2019-09-13 | 腾讯科技(深圳)有限公司 | 一种请求的校验方法和相关装置 |
CN110287383A (zh) * | 2019-06-28 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种字段信息检验方法及装置 |
WO2020259147A1 (zh) * | 2019-06-28 | 2020-12-30 | 深圳前海微众银行股份有限公司 | 一种字段信息检验方法及装置 |
CN110287383B (zh) * | 2019-06-28 | 2023-06-09 | 深圳前海微众银行股份有限公司 | 一种字段信息检验方法及装置 |
CN110659019B (zh) * | 2019-09-26 | 2023-07-25 | 北京金山云网络技术有限公司 | 参数校验方法、装置和服务器 |
CN110659019A (zh) * | 2019-09-26 | 2020-01-07 | 北京金山云网络技术有限公司 | 参数校验方法、装置和服务器 |
CN111090788A (zh) * | 2019-12-03 | 2020-05-01 | 广州品唯软件有限公司 | json文件的比对方法、装置、存储介质及计算机设备 |
CN111090788B (zh) * | 2019-12-03 | 2023-10-13 | 广州品唯软件有限公司 | json文件的比对方法、装置、存储介质及计算机设备 |
CN111064725A (zh) * | 2019-12-12 | 2020-04-24 | 广州鲁邦通物联网科技有限公司 | 一种代码零入侵接口校验方法和校验装置 |
CN111191246A (zh) * | 2019-12-19 | 2020-05-22 | 杭州安恒信息技术股份有限公司 | 一种基于Spring注解的安全开发校验方法 |
CN111444224B (zh) * | 2020-03-24 | 2023-08-15 | 政采云有限公司 | 一种业务数据校验方法及装置 |
CN111444224A (zh) * | 2020-03-24 | 2020-07-24 | 政采云有限公司 | 一种业务数据校验方法及装置 |
CN111459911B (zh) * | 2020-03-30 | 2022-12-13 | 上海云砺信息科技有限公司 | 业务数据的处理方法及设备 |
CN111459911A (zh) * | 2020-03-30 | 2020-07-28 | 上海云励科技有限公司 | 业务数据的处理方法及设备 |
CN111835710A (zh) * | 2020-05-29 | 2020-10-27 | 中国平安财产保险股份有限公司 | 校验请求体的方法、装置、计算机设备和存储介质 |
CN111835710B (zh) * | 2020-05-29 | 2023-08-15 | 中国平安财产保险股份有限公司 | 校验请求体的方法、装置、计算机设备和存储介质 |
CN112015763A (zh) * | 2020-07-14 | 2020-12-01 | 北京旷视科技有限公司 | Json数据校验方法、装置、电子设备和计算机可读介质 |
CN112269706A (zh) * | 2020-11-16 | 2021-01-26 | 北京百度网讯科技有限公司 | 接口参数校验方法、装置、电子设备以及计算机可读介质 |
CN112269706B (zh) * | 2020-11-16 | 2024-04-05 | 北京百度网讯科技有限公司 | 接口参数校验方法、装置、电子设备以及计算机可读介质 |
CN113517048A (zh) * | 2021-07-12 | 2021-10-19 | 挂号网(杭州)科技有限公司 | 病案的数据校验方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108132880B (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108132880A (zh) | 一种参数校验方法及装置 | |
US7426496B2 (en) | Assisted form filling | |
US8234692B2 (en) | System and method for processing an upload of a program with export compliance information | |
US8682917B2 (en) | Method, system and computer program product for currency searching | |
CN109635300A (zh) | 数据校验方法及装置 | |
CN105101122A (zh) | 验证码输入方法和装置 | |
CN108062303A (zh) | 垃圾短信的识别方法及装置 | |
CN113688326B (zh) | 推荐方法、装置、设备及计算机可读存储介质 | |
CN111562965B (zh) | 基于决策树的页面数据校验方法和装置 | |
CN108427554B (zh) | 一种表驱动的云模式软件自动构造方法及系统 | |
CN110442513A (zh) | 功能测试用例的执行方法、装置、计算机设备和存储介质 | |
CN107766124A (zh) | 一种web表单的自动验证方法以及装置 | |
CN110046785A (zh) | 一种业务处理方法、设备及其电子设备 | |
CN103713895A (zh) | 一种数据发送方法和装置 | |
CN110147373A (zh) | 数据处理方法、装置以及电子设备 | |
CN110263239A (zh) | 一种发票识别的方法、装置、存储介质及计算机设备 | |
CN110062005A (zh) | 用户终端、服务器、验证系统及方法 | |
CN105426183B (zh) | 一种表单验证方法 | |
CN111325586B (zh) | 基于区块链网络的票据代开方法、装置、服务器及介质 | |
CN111598707B (zh) | 一种页面的生成方法及电子设备 | |
CN113225694A (zh) | 一种短信群发方法、装置及计算机设备 | |
CN108804889B (zh) | 一种网站注册方法及装置 | |
CN112860722A (zh) | 数据核对方法、装置、电子设备和可读存储介质 | |
CN114663176A (zh) | 业务操作执行方法、装置、设备及计算机可读存储介质 | |
CN108074082A (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 |