CN111090788B - json文件的比对方法、装置、存储介质及计算机设备 - Google Patents
json文件的比对方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN111090788B CN111090788B CN201911223118.XA CN201911223118A CN111090788B CN 111090788 B CN111090788 B CN 111090788B CN 201911223118 A CN201911223118 A CN 201911223118A CN 111090788 B CN111090788 B CN 111090788B
- Authority
- CN
- China
- Prior art keywords
- fields
- file
- field
- compared
- json
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种json文件的比对方法。该方法包括:获取两个待比对json文件;当确定所述两个待比对json文件中的字段不一致时,根据所述两个待比对文件生成校验文件;根据所述校验文件提取所述两个待比对json文件中的差异字段;根据所述差异字段生成比对结果。本申请可以根据所述两个待比对文件生成校验文件,并根据所述校验文件提取所述两个待比对json文件中的差异字段,无需预先配置各个比对节点,以及针对各个比对节点的比对逻辑,实现简单快捷地提取差异字段,提高json文件比对的效率。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种json文件的比对方法、装置、存储介质及计算机设备。
背景技术
json(javascriptobjectnotation:java脚本对象注释)是一种轻量级的数据交换格式。json是js(javascript,一种直译式脚本语言)对象的字符串表示法,它使用文本表示一个js对象的信息,本质是一个字符串。
在应用程序编程接口测试过程中,经常会遇到代码重构或者频繁迭代等需求,而要求做接口返回结果的对比测试。或者,另外一种应用场景中,直接导入两个json文件,需要对该两个json文件进行差异比对。在进行差异检测时,现有技术中要么通过利用现有的一些json对比工具(jsondiff工具)做对比,要么通过配置需要进行自定义比对的节点和相应的比对逻辑代码,保存到文件或数据库中,后续依据该自定义比对的节点和相应的比对逻辑代码执行比对。
然而,利用现有的json对比工具做对比时,仅适用于对于数据量较少,且结构较简单的json文件的比对,对于数量大且结果复杂的json文件则不适用。通过自定义比对节点进行比对时,需要预先配置各个节点以及各个节点对应的比对逻辑,方案复杂,工作量大。
发明内容
基于此,有必要针对上述技术问题,提供一种可以根据两个待比对文件生成校验文件,并根据校验文件提取两个待比对json文件中的差异字段,实现简单快捷地提取差异字段,提高比对的效率的json文件的比对方法、装置、计算机设备和存储介质。
一种json文件的比对方法,方法包括:
获取两个待比对json文件;
在两个待比对json文件中的字段不一致时,根据两个待比对文件生成校验文件;
根据校验文件提取两个待比对json文件中的差异字段;
根据差异字段生成比对结果。
在其中一个实施例中,方法还包括:
根据预设的忽略规则获取两个待比对json文件中的待忽略字段,分别删除两个待比对json文件中的待忽略字段,或者/和,根据预设的替换规则,分别获取两个待比对json文件中的待替换字段,将待替换字段替换成替换规则中替换字段列表中的目标字段,得到两个中间文件;
根据两个中间文件生成校验文件。
在其中一个实施例中,方法还包括:
将两个待比对json文件转换成对应的schema字符串;
比对各个待比对json文件对应的schema字符串;
在两个schema字符串不一致时,确定两个待比对json文件中的字段不一致。
在其中一个实施例中,根据两个待比对文件生成校验文件,包括:
将两个待比对json文件分别转换成两个json对象;
分别提取两个json对象中的各个字段的路径标识以及字段信息;
根据所述各个字段的路径标识以及字段信息分别生成两个json对象对应的字段信息列表作为所述校验文件;
根据校验文件提取两个待比对json文件中的差异字段,包括:
提取两个字段信息列表中,相同路径标识对应的字段信息不同的字段作为差异字段。
在其中一个实施例中,根据两个待比对文件生成校验文件,包括:
从两个待比对json文件中选取一个待比对json文件作为基准文件,另一个待比对json文件作为测试文件;
依据基准文件生成schema文件作为校验文件,schema文件中包含校验规则,校验规则中包括基准文件中各个字段的字段信息以及全部的必需字段;
根据校验文件提取两个待比对json文件中的差异字段,包括:
将测试文件中的各个字段与校验规则中对应的字段信息进行比对;
当测试文件中不包含校验规则中全部的必需字段时,获取测试文件中不存在的必需字段作为测试文件的缺失字段;
当测试文件中的字段信息与校验规则中对应的字段信息不一致时,获取该字段信息对应的字段作为测试文件中的变化字段;
当测试文件中存在除校验规则中各个字段以外的其他字段时,获取该其他字段作为测试文件的多余字段;
将缺失字段、多余字段以及变化字段作为测试文件与基准文件的差异字段。
在其中一个实施例中,根据差异字段生成比对结果,包括:
将缺失字段、多余字段以及变化字段进行分类,提取各个类别中各个字段的字段信息;
分别统计各个类别中全部字段的数量;
根据各个类别中各个字段的字段信息以及全部字段的数量生成差异报表;
以该差异报表作为比对结果。
一种json文件的比对装置,装置包括:
获取模块,用于获取两个待比对json文件;
生成模块,用于在两个待比对json文件中的字段不一致时,根据两个待比对文件生成校验文件;
提取模块,用于根据校验文件提取两个待比对json文件中的差异字段;
输出模块,用于根据差异字段生成比对结果。
在其中一个实施例中,装置还包括:
确定模块,用于将两个待比对json文件转换成对应的schema字符串;
比对各个待比对json文件对应的schema字符串;
在两个schema字符串不一致时,确定两个待比对json文件中的字段不一致。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现上述任一实施例方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现上述任一实施例方法的步骤。
上述的json文件的比对方法、装置及计算机设备,方法通过获取两个待比对json文件;当确定两个待比对json文件中的字段不一致时,根据两个待比对文件生成校验文件;根据校验文件提取两个待比对json文件中的差异字段;根据差异字段生成比对结果。本申请可以根据两个待比对文件生成校验文件,并根据校验文件提取两个待比对json文件中的差异字段,无需预先配置各个比对节点,以及针对各个比对节点的比对逻辑,实现简单快捷地提取差异字段,提高json文件比对的效率。
附图说明
图1为本申请一示例性实施例中json文件的比对方法的应用环境图;
图2为本申请一示例性实施例中提供的json文件的比对方法的流程示意图;
图3为本申请一示例性实施例中提供的json文件的比对方法的流程示意图;
图4为本申请一示例性实施例中提供的根据校验文件提取两个待比对json文件中的差异字段的流程示意图;
图5为本申请一示例性实施例中提供的json文件的比对装置的结构框图;
图6为本申请一示例性实施例中提供的json文件的比对装置的结构框图;
图7为本申请一示例性实施例中提供的计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参考图1,图1为本申请一示例性实施例提供的一种json文件的比对方法的应用环境示意图。如图1所示,该json文件的比对系统包括服务器100以及终端101。服务器100以及终端101通过网络102进行通信。
服务器100用于获取两个待比对json文件,比对两个待比对json文件,提取两个待比对json文件中的差异字段,得到比对结果,将该比对结果发送至终端101展示,以实现本申请的json文件的比对方法。服务器100可以用独立的服务器或者是两个服务器组成的服务器集群来实现。
终端101用于向服务器100提交两个待比对json文件,并最终接收服务器100对该两个待比对json文件进行比对后反馈的比对结果,将该比对结果展示在用户界面。终端101可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和台式计算机等。
网络102用于实现服务器100以及终端101之间的网络连接。具体的,网络102可以包括多种类型的有线或无线网络。
在一个实施例中,如图2所示,提供了一种json文件的比对方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S11、获取两个待比对json文件。
本申请中,服务器在接收到终端提交的比对请求时,根据比对请求获取两个待比对json文件,并执行比对,得到比对结果。
另一种实施例中,在进行接口测试时,服务器在接收到接口的返回结果时,提取返回结果中的待比对json文件,并执行比对得到比对结果。
S12、在两个待比对json文件中的字段不一致时,根据两个待比对文件生成校验文件。
本申请中,还包括判断两个待比对json文件中的字段是否一致的步骤。在判断两个待比对json文件中的字段不一致时,根据两个待比对文件生成校验文件。
本申请中待比对json文件中包括多个字段以及各个字段的字段信息,字段信息包括但不限于:字段名、字段类型、字段取值以及字段取值的类型。
S13、根据校验文件提取两个待比对json文件中的差异字段。
本申请中,可以根据校验文件提取两个待比对json文件中的差异字段。差异字段为两个待比对json文件中字段信息不一致的字段,如字段名不一致或者字段类型不一致的字段。
S14、根据差异字段生成比对结果。
本申请中,获取差异字段后对差异字段进行整合,得到比对结果。比对结果可以通过预设格式进行展示,如报表形式或者树形图格式等,具体的展示格式可以根据需求设定。
在其中一个实施例中,上述的方法还包括:
根据预设的忽略规则获取两个待比对json文件中的待忽略字段,分别删除两个待比对json文件中的待忽略字段,或者/和,根据预设的替换规则,分别获取两个待比对json文件中的待替换字段,将待替换字段替换成替换规则中替换字段列表中的目标字段,得到两个中间文件,根据两个中间文件生成校验文件。
本申请中,预先设定忽略规则以及替换规则。具体的,一种可能的设计中,本申请设定忽略规则可以包括如下步骤:
接收忽略规则中待忽略字段的添加请求;
提取添加请求中的待忽略字段;
将待忽略字段添加至忽略字段列表中,生成忽略规则。
相应的,上述的根据预设的忽略规则获取两个待比对json文件中的待忽略字段,分别删除两个待比对json文件中的待忽略字段,可以包括:
根据忽略字段列表提取两个待比对json文件中的待忽略字段;
分别删除两个待比对json文件中的待忽略字段。
进一步的,本申请设定替换规则可以包括如下步骤:
接收替换规则中待替换字段以及替换后的目标字段的添加请求;
提取添加请求中的待替换字段以及目标字段;
将待替换字段以及目标字段添加至替换字段列表中,生成替换规则。
请参考图3,在其中一个实施例中,上述的方法还可以包括步骤:
S15、将两个待比对json文件转换成对应的schema字符串,比对各个待比对json文件对应的schema字符串,在两个schema字符串不一致时,确定两个待比对json文件中的字段不一致。
本申请中,在提取差异字段之前通过将两个待比对json文件转换成对应的schema字符串判断两个待比对json文件中的字段是否一致。其中,schema字符串是将json文件基于javascript(一种直译式脚本语言)语言生成schema报文后转换成的字符串,其生成过程较简单。
本申请通过先从字符串维度进行初步比对,判断两个待比对json文件是否存在不一致的字段,若存在,再执行后续的差异字段的提取,节省了整个方案的比对时间,提高了比对效率。
在其中一个实施例中,上述的根据两个待比对文件生成校验文件,可以包括:
将两个待比对json文件分别转换成两个json对象;
分别提取两个json对象中的各个字段的路径标识以及字段信息;
根据各个字段的路径标识以及字段信息分别生成两个json对象对应的字段信息列表作为校验文件;
上述的根据校验文件提取两个待比对json文件中的差异字段,可以包括:
提取两个字段信息列表中,相同路径标识对应的字段信息不同的字段作为差异字段。
本申请中,将两个待比对json文件分别转换成两个json对象后,在json对象中包括待比对json文件中的各个字段的字段信息以及各个字段的路径标识。字段信息可以包括待比对json文件中各个字段的字段取值以及字段名称。在比对各个字段时,将相同路径标识对应字段的字段信息进行比对,若相同路径标识对应字段的字段信息不一致,则判断该两个字段为差异字段。
进一步的,提取各个差异字段的字段取值以及路径标识,根据各个差异字段的字段取值以及路径标识生成差异报表输出。在该差异报表中包括各个路径标识所指向的差异字段的字段信息。另一种实施例中,也可以通过字段信息列表获取其中一个json文件相对于另一个json文件的缺失字段以及多余字段,根据字段信息不一致的字段、缺失字段以及多余字段生成差异报表输出。
在其中一个实施例中,上述的根据两个待比对文件生成校验文件,可以包括:
从两个待比对json文件中选取一个待比对json文件作为基准文件,另一个待比对json文件作为测试文件;
依据基准文件生成schema文件作为校验文件,schema文件中包含校验规则,校验规则中包括基准文件中各个字段的字段信息以及全部的必需字段。
本申请中,schema文件是基于java(一门面向对象编程语言)语言生成,其生成过程较schema字符串的生成过程复杂。在该schema文件中包含必需字段以及基准文件中的各个字段以及字段的类型。另一种可能的设计中,schema文件还可以具体规定一个值是数字还是字符串类型;还可以规定哪些字段是需要的,哪些字段是不需要的;也可以指定某个字段的字段取值的范围、最大值和最小值。
请参考图4,上述的根据校验文件提取两个待比对json文件中的差异字段,可以包括:
S121、将测试文件中的各个字段与校验规则中对应的字段信息进行比对;
S122、当测试文件中不包含校验规则中全部的必需字段时,获取测试文件中不存在的必需字段作为测试文件的缺失字段;
S123、当测试文件中的字段信息与校验规则中对应的字段信息不一致时,获取该字段信息对应的字段作为测试文件中的变化字段;
S124、当测试文件中存在除校验规则中各个字段以外的其他字段时,获取该其他字段作为测试文件的多余字段;
S125、将缺失字段、多余字段以及变化字段作为测试文件与基准文件的差异字段。
本申请中,可以灵活选取一个待测试json文件作为基准文件,另一个json文件作为测试文件,根据该基准文件生成schema文件。其中,schema文件中可以包含:测试文件中必须包含的字段即必需字段、必需字段的字段类型、测试文件中各个字段的字段名、字段的类型、字段取值的数据类型。另一种实施例中,schema文件还可以具体规定一个字段取值是数字或者是字符串等类型、还可以规定哪些字段是不需要的字段、也可以指定字段取值的范围、最小值和最大值等。
具体的,在对测试文件进行校验时,根据schema文件中的必需字段查询测试文件中是否存在这些必需字段,若存在,则必需字段的校验通过,若不存在,则获取不存在的必需字段,作为测试文件的缺失字段。
进一步的,根据schema文件中各个字段的字段信息校验测试文件中对应字段的字段信息。例如,根据schema文件中规定的字段取值的数据类型校验测试文件中对应字段取值的数据类型,若不一致,则判断为变化字段。再例如,根据schema文件中规定的字段取值的范围校验测试文件中对应字段的取值,若测试文件中对应字段的取值包含于schema文件中规定的字段取值的范围内,则该字段的字段取值校验通过,否则,判断为变化字段。
另一种实施例中,也可以先通过方案一:
将两个待比对json文件分别转换成两个json对象;分别提取两个json对象中的各个字段的路径标识以及字段信息;根据各个字段的路径标识以及字段信息分别生成两个json对象对应的字段信息列表,根据该校验类别得到两个json文件中取值不同的字段以及对应的路径标识。
进一步的,再通过方案二:
选取两个待比对json文件中的一个作为基准文件,另一个待比对json文件作为测试文件;依据基准文件生成schema文件作为校验文件,根据该schema文件得到两个json文件中字段类型或者字段取值的类型不一致的字段以及缺失字段和多余字段。
进一步的,根据以上方案一得到的取值不同的字段以及方案二得到的字段类型不同、字段取值的类型不同的字段、缺失字段和多余字段生成差异报表输出。
进一步的,本申请根据该schema文件校验测试文件,获取该测试文件与基准文件的差异字段。
在其中一个实施例中,上述的根据差异字段生成比对结果,包括:
将缺失字段、多余字段以及变化字段进行分类,提取各个类别中各个字段的字段信息;
分别统计各个类别中全部字段的数量;
根据各个类别中各个字段的字段信息以及全部字段的数量生成差异报表;
以该差异报表作为比对结果。
本申请在获取到差异字段后对各个差异字段进行分类,分类的类别包括但不限于:缺失字段、多余字段以及变化字段等。进一步的,统计各个类别中全部字段的数量以及各个字段的字段信息,字段信息包括但不限于:字段名、字段取值、字段的类型以及字段取值的类型等。进一步的,根据各个类别、各个类别中所包括的字段的信息生成比对结果。其中,该比对结果的展示形式可以根据需求设定。优选的,本申请以差异报表的形式展示该比对结果,根据各个类别的类别信息以及各个类别中各个字段的字段信息构建差异报表。
在一个实施例中,如图5所示,提供了一种json文件的比对装置,包括:
获取模块11,用于获取两个待比对json文件;
生成模块12,用于在两个待比对json文件中的字段不一致时,根据两个待比对文件生成校验文件;
提取模块13,用于根据校验文件提取两个待比对json文件中的差异字段;
输出模块14,用于根据差异字段生成比对结果。
请参考图6,在其中一个实施例中,上述的装置还包括:
预处理模块16,用于根据预设的忽略规则获取两个待比对json文件中的待忽略字段,分别删除两个待比对json文件中的待忽略字段,或者/和,根据预设的替换规则,分别获取两个待比对json文件中的待替换字段,将待替换字段替换成替换规则中替换字段列表中的目标字段,得到两个中间文件,根据两个中间文件生成校验文件。
请继续参考图6,在其中一个实施例中,上述的装置还包括:
确定模块15,用于将两个待比对json文件转换成对应的schema字符串,比对各个待比对json文件对应的schema字符串,在两个schema字符串不一致时,确定两个待比对json文件中的字段不一致。
在其中一个实施例中,上述的生成模块12,包括:
第一生成单元,用于将两个待比对json文件分别转换成两个json对象,分别提取两个json对象中的各个字段的路径标识以及字段信息,根据所述各个字段的路径标识以及字段信息分别生成两个json对象对应的字段信息列表作为所述校验文件;
上述的提取模块13,包括:
第一提取单元,用于提取两个字段信息列表中,相同路径标识对应的字段信息不同的字段作为差异字段。
在其中一个实施例中,上述的生成模块12,包括:
第二生成单元,用于从两个待比对json文件中选取一个待比对json文件作为基准文件,另一个待比对json文件作为测试文件,依据基准文件生成schema文件作为校验文件,schema文件中包含校验规则,校验规则中包括基准文件中各个字段的字段信息以及全部的必需字段;
上述的提取模块13,包括:
第二提取单元,用于将测试文件中的各个字段与校验规则中对应的字段信息进行比对,当测试文件中不包含校验规则中全部的必需字段时,获取测试文件中不存在的必需字段作为测试文件的缺失字段,当测试文件中的字段信息与校验规则中对应的字段信息不一致时,获取该字段信息对应的字段作为测试文件中的变化字段,当测试文件中存在除校验规则中各个字段以外的其他字段时,获取该其他字段作为测试文件的多余字段,将缺失字段、多余字段以及变化字段作为测试文件与基准文件的差异字段。
在其中一个实施例中,上述的输出模块14,包括:
输出单元,用于将缺失字段、多余字段以及变化字段进行分类,提取各个类别中各个字段的字段信息,分别统计各个类别中全部字段的数量;
根据各个类别中各个字段的字段信息以及全部字段的数量生成差异报表以该差异报表作为比对结果。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是业务处理服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供确定和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的第一终端通过网络连接通信。该计算机程序被处理器执行时以实现一种json文件的比对方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取两个待比对json文件;在两个待比对json文件中的字段不一致时,根据两个待比对文件生成校验文件;根据校验文件提取两个待比对json文件中的差异字段;根据差异字段生成比对结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据预设的忽略规则获取两个待比对json文件中的待忽略字段,分别删除两个待比对json文件中的待忽略字段,或者/和,根据预设的替换规则,分别获取两个待比对json文件中的待替换字段,将待替换字段替换成替换规则中替换字段列表中的目标字段,得到两个中间文件;根据两个中间文件生成校验文件。
在一个实施例中,处理器执行计算机程序时,还实现以下步骤:将两个待比对json文件转换成对应的schema字符串;比对各个待比对json文件对应的schema字符串;在两个schema字符串不一致时,确定两个待比对json文件中的字段不一致。
在一个实施例中,处理器执行计算机程序实现上述的根据两个待比对文件生成校验文件的步骤时,具体实现以下步骤:将两个待比对json文件分别转换成两个json对象,分别提取两个json对象中的各个字段的路径标识以及字段信息;根据所述各个字段的路径标识以及字段信息分别生成两个json对象对应的字段信息列表作为所述校验文件;根据校验文件提取两个待比对json文件中的差异字段,包括:提取两个字段信息列表中,相同路径标识对应的字段信息不同的字段作为差异字段。
在一个实施例中,处理器执行计算机程序实现上述的根据两个待比对文件生成校验文件的步骤时,具体实现以下步骤:从两个待比对json文件中选取一个待比对json文件作为基准文件,另一个待比对json文件作为测试文件;依据基准文件生成schema文件作为校验文件,schema文件中包含校验规则,校验规则中包括基准文件中各个字段的字段信息以及全部的必需字段;根据校验文件提取两个待比对json文件中的差异字段,包括:将测试文件中的各个字段与校验规则中对应的字段信息进行比对;当测试文件中不包含校验规则中全部的必需字段时,获取测试文件中不存在的必需字段作为测试文件的缺失字段;当测试文件中的字段信息与校验规则中对应的字段信息不一致时,获取该字段信息对应的字段作为测试文件中的变化字段;当测试文件中存在除校验规则中各个字段以外的其他字段时,获取该其他字段作为测试文件的多余字段;将缺失字段、多余字段以及变化字段作为测试文件与基准文件的差异字段。
在一个实施例中,处理器执行计算机程序实现上述的根据差异字段生成比对结果的步骤时,具体实现以下步骤:将缺失字段、多余字段以及变化字段进行分类,提取各个类别中各个字段的字段信息;分别统计各个类别中全部字段的数量;根据各个类别中各个字段的字段信息以及全部字段的数量生成差异报表;以该差异报表作为比对结果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取两个待比对json文件;在所述两个待比对json文件中的字段不一致时,根据所述两个待比对文件生成校验文件;根据所述校验文件提取所述两个待比对json文件中的差异字段;根据所述差异字段生成比对结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据预设的忽略规则获取所述两个待比对json文件中的待忽略字段,分别删除两个待比对json文件中的待忽略字段,或者/和,根据预设的替换规则,分别获取两个待比对json文件中的待替换字段,将所述待替换字段替换成所述替换规则中替换字段列表中的目标字段,得到两个中间文件;根据所述两个中间文件生成所述校验文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将所述两个待比对json文件转换成对应的schema字符串;比对各个待比对json文件对应的schema字符串;在两个schema字符串不一致时,确定所述两个待比对json文件中的字段不一致。
在一个实施例中,计算机程序被处理器执行实现上述的根据所述两个待比对文件生成校验文件步骤时,具体实现以下步骤:将两个待比对json文件分别转换成两个json对象,分别提取两个json对象中的各个字段的路径标识以及字段信息;根据所述各个字段的路径标识以及字段信息分别生成两个待比对json文件对应的字段信息列表作为所述校验文件;所述根据所述校验文件提取所述两个待比对json文件中的差异字段,包括:提取两个字段信息列表中,相同路径标识对应的字段信息不同的字段作为所述差异字段。
在一个实施例中,计算机程序被处理器执行实现上述的根据所述两个待比对文件生成校验文件步骤时,具体实现以下步骤:从所述两个待比对json文件中选取一个待比对json文件作为基准文件,另一个待比对json文件作为测试文件;依据所述基准文件生成schema文件作为所述校验文件,所述schema文件中包含校验规则,所述校验规则中包括所述基准文件中各个字段的字段信息以及全部的必需字段;
在一个实施例中,计算机程序被处理器执行实现上述的根据所述校验文件提取所述两个待比对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 (9)
1.一种json文件的比对方法,所述方法包括:
获取两个待比对json文件;
从所述两个待比对json文件中选取一个待比对json文件作为基准文件,另一个待比对json文件作为测试文件;
依据所述基准文件生成schema文件作为校验文件,所述schema文件中包含校验规则,所述校验规则中包括所述基准文件中各个字段的字段信息以及全部的必需字段;
将所述测试文件中的各个字段与所述校验规则中对应的字段信息进行比对;
当所述测试文件中不包含所述校验规则中全部的必需字段时,获取所述测试文件中不存在的必需字段作为所述测试文件的缺失字段;
当所述测试文件中的字段信息与所述校验规则中对应的字段信息不一致时,获取该字段信息对应的字段作为所述测试文件中的变化字段;
当所述测试文件中存在除所述校验规则中各个字段以外的其他字段时,获取该其他字段作为所述测试文件的多余字段;
将所述缺失字段、多余字段以及变化字段作为所述测试文件与所述基准文件的差异字段;
根据所述差异字段生成比对结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据预设的忽略规则获取所述两个待比对json文件中的待忽略字段,分别删除两个待比对json文件中的待忽略字段,或者/和,根据预设的替换规则,分别获取两个待比对json文件中的待替换字段,将所述待替换字段替换成所述替换规则中替换字段列表中的目标字段,得到两个中间文件;
根据所述两个中间文件生成所述校验文件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述两个待比对json文件转换成对应的schema字符串;
比对各个待比对json文件对应的schema字符串;
在两个schema字符串不一致时,确定所述两个待比对json文件中的字段不一致。
4.根据权利要求1所述的方法,其特征在于,所述根据所述两个待比对文件生成校验文件,包括:
将两个待比对json文件分别转换成两个json对象;
分别提取两个json对象中的各个字段的路径标识以及字段信息;
根据所述各个字段的路径标识以及字段信息分别生成两个json对象对应的字段信息列表作为所述校验文件;
所述根据所述校验文件提取所述两个待比对json文件中的差异字段,包括:
提取两个字段信息列表中,相同路径标识对应的字段信息不同的字段作为所述差异字段。
5.根据权利要求1所述的方法,其特征在于,所述根据所述差异字段生成比对结果,包括:
将所述缺失字段、多余字段以及变化字段进行分类,提取各个类别中各个字段的字段信息;
分别统计各个类别中全部字段的数量;
根据各个类别中各个字段的字段信息以及全部字段的数量生成差异报表;
以该差异报表作为所述比对结果。
6.一种json文件的比对装置,所述装置包括:
获取模块,用于获取两个待比对json文件;
生成模块,用于从所述两个待比对json文件中选取一个待比对json文件作为基准文件,另一个待比对json文件作为测试文件,依据所述基准文件生成schema文件作为校验文件,所述schema文件中包含校验规则,所述校验规则中包括所述基准文件中各个字段的字段信息以及全部的必需字段;
提取模块,用于将所述测试文件中的各个字段与所述校验规则中对应的字段信息进行比对,当所述测试文件中不包含所述校验规则中全部的必需字段时,获取所述测试文件中不存在的必需字段作为所述测试文件的缺失字段,当所述测试文件中的字段信息与所述校验规则中对应的字段信息不一致时,获取该字段信息对应的字段作为所述测试文件中的变化字段,当所述测试文件中存在除所述校验规则中各个字段以外的其他字段时,获取该其他字段作为所述测试文件的多余字段,将所述缺失字段、多余字段以及变化字段作为所述测试文件与所述基准文件的差异字段;
输出模块,用于根据所述差异字段生成比对结果。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
确定模块,用于将所述两个待比对json文件转换成对应的schema字符串;
比对各个待比对json文件对应的schema字符串;
在两个schema字符串不一致时,确定所述两个待比对json文件中的字段不一致。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的json文件的比对方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的json文件的比对方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911223118.XA CN111090788B (zh) | 2019-12-03 | 2019-12-03 | json文件的比对方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911223118.XA CN111090788B (zh) | 2019-12-03 | 2019-12-03 | json文件的比对方法、装置、存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111090788A CN111090788A (zh) | 2020-05-01 |
CN111090788B true CN111090788B (zh) | 2023-10-13 |
Family
ID=70393978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911223118.XA Active CN111090788B (zh) | 2019-12-03 | 2019-12-03 | json文件的比对方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111090788B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015763B (zh) * | 2020-07-14 | 2024-06-14 | 北京旷视科技有限公司 | Json数据校验方法、装置、电子设备和计算机可读介质 |
CN112463630A (zh) * | 2020-12-08 | 2021-03-09 | 广州品唯软件有限公司 | 版本差异性测试方法、装置、计算机设备和存储介质 |
CN113010230B (zh) * | 2021-03-26 | 2024-02-09 | 广州市百果园网络科技有限公司 | 配置信息处理方法、装置、设备及存储介质 |
CN113065326B (zh) * | 2021-03-31 | 2024-06-21 | 北京达佳互联信息技术有限公司 | 一种文本比对方法、装置、电子设备及存储介质 |
CN113919309A (zh) * | 2021-10-22 | 2022-01-11 | 平安科技(深圳)有限公司 | 基于Excel宏功能的字段比对方法、装置、设备及存储介质 |
CN113886332B (zh) * | 2021-12-09 | 2022-02-08 | 广东睿江云计算股份有限公司 | 一种大文件差异对比方法、装置、计算机设备及存储介质 |
CN114266227B (zh) * | 2021-12-16 | 2024-05-24 | 杭州海康威视系统技术有限公司 | json数据处理方法、装置、设备及机器可读存储介质 |
CN117573943B (zh) * | 2024-01-11 | 2024-05-28 | 云筑信息科技(成都)有限公司 | 一种基于序列化相似度计算的数据对比方法 |
CN117852521B (zh) * | 2024-03-07 | 2024-06-07 | 成都中科合迅科技有限公司 | 一种数据计算结果文件对比方法、系统及对比配置系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483467A (zh) * | 2017-08-31 | 2017-12-15 | 四川长虹电器股份有限公司 | 面向互联网接口服务的json报文校验方法 |
CN108132880A (zh) * | 2017-12-21 | 2018-06-08 | 武汉斑马快跑科技有限公司 | 一种参数校验方法及装置 |
CN109032886A (zh) * | 2018-06-21 | 2018-12-18 | 携程旅游网络技术(上海)有限公司 | Json报文比对方法及系统 |
CN110162510A (zh) * | 2019-04-26 | 2019-08-23 | 平安普惠企业管理有限公司 | 文本对比方法、装置、计算机设备及存储介质 |
CN110162509A (zh) * | 2019-04-26 | 2019-08-23 | 平安普惠企业管理有限公司 | 文件比对方法、装置、计算机设备及存储介质 |
CN110362476A (zh) * | 2019-06-17 | 2019-10-22 | 深圳壹账通智能科技有限公司 | 数据转换工具的验证方法、装置、计算机设备和存储介质 |
-
2019
- 2019-12-03 CN CN201911223118.XA patent/CN111090788B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483467A (zh) * | 2017-08-31 | 2017-12-15 | 四川长虹电器股份有限公司 | 面向互联网接口服务的json报文校验方法 |
CN108132880A (zh) * | 2017-12-21 | 2018-06-08 | 武汉斑马快跑科技有限公司 | 一种参数校验方法及装置 |
CN109032886A (zh) * | 2018-06-21 | 2018-12-18 | 携程旅游网络技术(上海)有限公司 | Json报文比对方法及系统 |
CN110162510A (zh) * | 2019-04-26 | 2019-08-23 | 平安普惠企业管理有限公司 | 文本对比方法、装置、计算机设备及存储介质 |
CN110162509A (zh) * | 2019-04-26 | 2019-08-23 | 平安普惠企业管理有限公司 | 文件比对方法、装置、计算机设备及存储介质 |
CN110362476A (zh) * | 2019-06-17 | 2019-10-22 | 深圳壹账通智能科技有限公司 | 数据转换工具的验证方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111090788A (zh) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090788B (zh) | json文件的比对方法、装置、存储介质及计算机设备 | |
CN110069449B (zh) | 文件处理方法、装置、计算机设备和存储介质 | |
CN109474578B (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
CN109558575B (zh) | 在线表格编辑方法、装置、计算机设备及存储介质 | |
CN110688598B (zh) | 业务参数采集方法、装置、计算机设备和存储介质 | |
CN111563051B (zh) | 基于爬虫的数据核验方法、装置、计算机设备及存储介质 | |
CN109783604B (zh) | 基于少量样本的信息提取方法、装置和计算机设备 | |
CN109800258B (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
CN110321284B (zh) | 测试数据录入方法、装置、计算机设备和存储介质 | |
CN109325042B (zh) | 处理模版获取方法、表格处理方法、装置、设备及介质 | |
CN109325118B (zh) | 不平衡样本数据预处理方法、装置和计算机设备 | |
CN112286934A (zh) | 数据库表导入方法、装置、设备及介质 | |
CN110046155B (zh) | 特征数据库的更新、数据特征的确定方法、装置及设备 | |
CN111026647B (zh) | 代码覆盖率的获取方法、装置、计算机设备和存储介质 | |
CN114327374A (zh) | 业务流程的生成方法、装置及计算机设备 | |
CN114610635A (zh) | 接口测试用例生成方法、装置、计算机设备及存储介质 | |
CN113988029A (zh) | 表单生成方法、装置、计算机设备和存储介质 | |
CN114048130A (zh) | 单元测试方法、装置、计算机设备及存储介质 | |
CN113505078B (zh) | 配置文件更新方法、装置、设备及存储介质 | |
CN107392560A (zh) | 一种基于互联网的Excel表格数据发布采集方法及系统 | |
CN108460116B (zh) | 搜索方法、装置、计算机设备、存储介质及搜索系统 | |
CN112307169B (zh) | 地址数据的匹配方法、装置、计算机设备及存储介质 | |
CN112433753A (zh) | 基于参数信息的接口文档生成方法、装置、设备和介质 | |
CN111858386A (zh) | 数据测试方法、装置、计算机设备和存储介质 | |
CN116561003A (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 |