CN109901989B - Json对比方法和装置以及电子设备 - Google Patents

Json对比方法和装置以及电子设备 Download PDF

Info

Publication number
CN109901989B
CN109901989B CN201711308055.9A CN201711308055A CN109901989B CN 109901989 B CN109901989 B CN 109901989B CN 201711308055 A CN201711308055 A CN 201711308055A CN 109901989 B CN109901989 B CN 109901989B
Authority
CN
China
Prior art keywords
json
jsons
api interfaces
comparison
api
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
Application number
CN201711308055.9A
Other languages
English (en)
Other versions
CN109901989A (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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN201711308055.9A priority Critical patent/CN109901989B/zh
Publication of CN109901989A publication Critical patent/CN109901989A/zh
Application granted granted Critical
Publication of CN109901989B publication Critical patent/CN109901989B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请实施例提供了JSON对比方法和装置以及电子设备。该JSON对比方法包括:获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口;确定第一组一个或多个API接口的第一拼接参数和第二组一个或多个API接口的第二拼接参数;对比第一组一个或多个API接口返回的第一JSON或第一组JSON和第二组一个或多个API接口返回的第二JSON或第二组JSON;以树形展示第一JSON和第二JSON的单条对比结果;以及,以表格形式给出第一组JSON和第二组JSON的批量对比结果。这样,可以实现不同API接口的JSON的单条或者批量对比,并获得批量对比的直观的汇总结果。

Description

JSON对比方法和装置以及电子设备
技术领域
本发明涉及数据处理领域,尤其是涉及一种JSON对比方法和装置以及电子设备。
背景技术
JSON(JavaScript Object Notation:Java脚本对象注释)是一种轻量级的数据交换格式,JSON键值对是用来保存JS对象的一种方式。JSON是JS对象的字符串表示法,它使用文本表示一个JS对象的信息,本质是一个字符串。
在API(Application Programming Interface:应用程序编程接口)接口测试过程中,经常会遇到数据迁移,代码重构,频繁迭代等需求,而要求做接口返回结果的对比测试。对于接口返回数据较少,结构较简单,并且返回数据结构固定的API接口,可以挑选出特殊用例,利用现有的一些JSON对比工具(JsonDiff工具)做对比。但是,对于返回数据庞大,结构复杂,并且对不同的输入参数返回不同结构的API接口,现有的工具无法满足测试需求。
更重要也是更加麻烦的问题是,要批量验证大量不同情况对应的结果,以及对结果进行分析定位,统计报表,现有的工具是无法实现的。
需要改进的JSON对比方案。
发明内容
本申请的目的在于针对上述现有技术中的缺陷和不足,提供新颖的和改进的JSON对比方法和装置以及电子设备,其能够实现不同API接口的单个或批量JSON对比并获得批量对比的汇总结果。
针对上述技术问题,根据本申请的一方面,提供了一种JSON对比方法,包括:获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口,所述第一组一个或多个API接口和所述第二组一个或多个API接口返回JSON;确定所述第一组一个或多个API接口的第一拼接参数和所述第二组一个或多个API接口的第二拼接参数;对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON;以树形展示所述第一JSON和所述第二JSON的单条对比结果;以及,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果。
在上述JSON对比方法中,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果包括:根据所述第一组JSON和所述第二组JSON的差异类型,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果;和/或,根据所述第一组JSON和所述第二组JSON的差异比例,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果。
在上述JSON对比方法中,对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON之前进一步包括:设置所述第一JSON或第一组JSON和所述第二JSON或第二组JSON中要对比的字段。
在上述JSON对比方法中,对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON之前进一步包括:过滤所述第一JSON或第一组JSON和所述第二JSON或第二组JSON中不需要关注的对象。
在上述JSON对比方法中,获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口之前进一步包括:确定进行JSON的单条对比或者批量对比;以及,对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON之前进一步包括:响应于要进行JSON的批量对比,提交批量参数值文件。
在上述JSON对比方法中,确定所述第一组一个或多个API接口的第一拼接参数和所述第二组一个或多个API接口的第二拼接参数包括:响应于要进行JSON的单条对比,接收所述第一API接口的第一拼接参数和所述第二API接口的第二拼接参数;和,响应于要进行JSON的批量对比,设置所述第一组多个API接口的第一拼接参数和所述第二组多个API接口的第二拼接参数。
在上述JSON对比方法中,获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口包括:接收所述第一组一个或多个API接口的基准URL地址和所述第二组一个或多个API接口的目标URL地址;其中,基于所述URL地址的HTTP请求返回所述第一JSON或第一组JSON和所述第二JSON或第二组JSON。
在上述JSON对比方法中,获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口包括:确定是否获得要进行对比的所述第一组一个或多个API接口和所述第二组一个或多个API接口;以及,响应于未获得所述第一组一个或多个API接口和所述第二组一个或多个API接口,重新执行获得所述第一组一个或多个API接口和所述第二组一个或多个API接口的操作。
根据本申请的另一方面,提供了一种JSON对比装置,包括:接口获取单元,用于获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口,所述第一组一个或多个API接口和所述第二组一个或多个API接口返回JSON;参数确定单元,用于确定所述第一组一个或多个API接口的第一拼接参数和所述第二组一个或多个API接口的第二拼接参数;对比单元,用于对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二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或第二组JSON中不需要关注的对象;和,所述对比单元用于对比所述第一JSON或第一组JSON和所述第二JSON或第二组JSON中由所述过滤单元过滤掉的不需要关注的对象以外的字段。
在上述JSON对比装置中,进一步包括:方式确定单元,用于确定进行JSON的单条对比或者批量对比;以及,参数提交单元,用于响应于要进行JSON的批量对比,提交批量参数值文件。
在上述JSON对比装置中,所述参数确定单元用于:响应于要进行JSON的单条对比,接收所述第一API接口的第一拼接参数和所述第二API接口的第二拼接参数;和,响应于要进行JSON的批量对比,设置所述第一组多个API接口的第一拼接参数和所述第二组多个API接口的第二拼接参数。
在上述JSON对比装置中,所述接口获取单元用于:接收所述第一组一个或多个API接口的基准URL地址和所述第二组一个或多个API接口的目标URL地址;其中,基于所述URL地址的HTTP请求返回所述第一JSON或第一组JSON和所述第二JSON或第二组JSON。
在上述JSON对比装置中,所述接口获取单元用于:确定是否获得要进行对比的所述第一组一个或多个API接口和所述第二组一个或多个API接口;以及,响应于未获得所述第一组一个或多个API接口和所述第二组一个或多个API接口,重新执行获得所述第一组一个或多个API接口和所述第二组一个或多个API接口的操作。
根据本申请的再一方面,提供了一种电子设备,包括:处理器;以及,存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如上所述的JSON对比方法。
根据本申请的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,当所述计算机程序指令被计算装置执行时,可操作来执行如上所述的JSON对比方法。
本申请提供的用于JSON对比方法和装置以及电子设备,可以进行实现不同API接口的JSON的批量对比,并获得批量对比的直观的汇总结果。
本申请提供的用于JSON对比方法和装置以及电子设备,通过确定不同API接口的拼接参数,不需要对URL拼接进行处理。
本申请提供的用于JSON对比方法和装置以及电子设备,通过直观展示JSON对比结果,可以直接定位到不一致的对象。
附图说明
通过阅读下文优选的具体实施方式中的详细描述,本发明各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。说明书附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。而且在整个附图中,用相同的附图标记表示相同的部件。
图1是图示根据本申请实施例的JSON对比方法的示意性流程图;
图2是根据本申请实施例的JSON对比方法的示例性总体实现的流程图;
图3是图示根据本申请实施例的JSON对比装置的示意性框图;
图4是图示根据本申请实施例的JSON对比装置的系统实现实例的示意性框图;
图5是图示根据本申请实施例的电子设备的框图。
具体实施方式
下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。
申请概述
如上所述,目前的JSON对比工具存在各种缺陷。例如,某种JSON对比工具仅能够进行单条对比,而不能对比全部字段,并且对比结果需要人工进行确认。又例如,某种JSON对比工具在进行对比时,需要对进行对比的每条URL进行前置处理,并且需要拼接参数,使得批量操作非常繁琐。并且,某些JSON对比工具不仅仅能够进行单条对比,而且不支持URL对比,既能够使用JSON字符串进行对比,且结果不直观。
针对上述问题,本申请实施例的基本构思是提出一种JSON对比方法和装置以及电子设备,其针对目前的测试需要实现了一个通用的JSON对比工具,不仅可以实现单条或批量JSON对比,而且可以实现对不同API接口的JSON对比。此外,本申请实施例的JSON对比方法和装置以及电子设备可以定制对比需求,界面化展示对比结果,并对批量对比结果进行统计汇总。
在介绍了本申请的基本原理之后,下面将参考附图来具体介绍本申请的各种非限制性实施例。
JSON对比方法的概述
图1是图示根据本申请实施例的JSON对比方法的示意性流程图。如图1所示,根据本申请实施例的JSON对比方法包括:S101,获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口,所述第一组一个或多个API接口和所述第二组一个或多个API接口返回JSON;S102,确定所述第一组一个或多个API接口的第一拼接参数和所述第二组一个或多个API接口的第二拼接参数;S103,对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON;S104,以树形展示所述第一JSON和所述第二JSON的单条对比结果;以及S105,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果。
因此,在根据本申请实施例的JSON对比方法中,可以实现不同API接口的JSON的单条或者批量对比,并获得批量对比的汇总结果。
另外,通过以树形展示所述第一JSON和所述第二JSON的单条对比结果,可以以直观的形式展示对比结果,从而可以直接定位到JSON中不一致的对象。
而且,通过以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果,可以获得JSON的批量对比的统计结果。这样,例如,在API接口的测试过程中,可以根据批量对比的统计汇总直接提出问题,实现API接口的开发自测。
并且,在根据本申请实施例的JSON对比方法中,通过确定不同API接口的拼接参数,在对JSON进行批量对比时,不需要对URL拼接进行处理,且对比的URL也不需要进行前置处理,从而避免了JSON批量对比时的繁琐操作。API接口的拼接参数的具体确定过程将在下文中进行说明。
所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON的对比结果可以直接存储在JsonDiff对象中,这样,在对批量对比的结果进行统计时,只需要读取对应的属性进行统计就可以了。
在根据本申请实施例的JSON对比方法中,在所有JsonDiff对比完成后,统计并给出结果。并且,批量对比任务可以以多线程执行。
另外,批量对比结果也可以写入其它类型的文件中,并且,根据本申请实施例的JSON对比方法支持写入了批量对比结果的文件下载和预览。而且,在给出批量对比的统计结果的同时,根据本申请实施例的JSON对比方法还可以给出单条差异结果链接,即,有差异的单条结果的链接。
当然,本领域技术人员可以理解,除了给出单条差异结果的链接以外,也可以以如上所述的树形展示方法来展示批量对比中的每一条具有差异的对比结果。
在上述JSON对比方法中,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果包括:根据所述第一组JSON和所述第二组JSON的差异类型,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果;和/或,根据所述第一组JSON和所述第二组JSON的差异比例,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果。
也就是说,在根据本申请实施例的JSON对比方法中,可以对JSON的差异种类进行分类汇总,从而可以通过不同维度,例如差异类型、差异比例等给出对比结果。
另外,在以树形展示所述第一JSON和所述第二JSON的单条对比结果时,可以直接以树形高亮标注单条对比结果。因此,用户可以直观地查看单条对比结果,例如,用户可以直接打开树形的JSON展示页,找到高亮显示的不一致对象。
在上述JSON对比方法中,对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON之前进一步包括:设置所述第一JSON或第一组JSON和所述第二JSON或第二组JSON中要对比的字段。
具体来说,在根据本申请实施例的JSON对比方法中,可以设置JSON字符串中要重点对比的对象。这样,可以仅对某次对比任务要特别关注的对象进行对比,而避免对JSON整体进行对比,从而提高了根据本申请实施例的JSON对比方法的运行效率。
在上述JSON对比方法中,对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON之前进一步包括:过滤所述第一JSON或第一组JSON和所述第二JSON或第二组JSON中不需要关注的对象。
也就是说,在根据本申请实施例的JSON对比方法中,不需要关注的对象可以过滤掉。这样,可以去除掉JSON中一些本来就不同的对象,如埋点值,时间类型的值等,提升对比结果的可看度。例如,时间类型的值是更新时间(*//updateTime)。
也就是说,根据JSON对比的默认实现,对比会返回所有不同的字段。在根据本申请实施例的JSON对比方法中,允许定制对比字段,返回具体的要比较字段和要过滤的字段,从而对默认的JSON对比结果进行过滤。
此外,如果强干预JSON结构,可以重新排序分组,然后插入到JSON根节点下,进行对比。这样,可以根据需求定制对比JSON字段,返回预期结果。
在上述JSON对比方法中,获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口之前进一步包括:确定进行JSON的单条对比或者批量对比;以及,对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON之前进一步包括:响应于要进行JSON的批量对比,提交批量参数值文件。
提交批量参数值文件例如可以是utf8编码的文件(vid.txt)的批量文件上传。
在上述JSON对比方法中,确定所述第一组一个或多个API接口的第一拼接参数和所述第二组一个或多个API接口的第二拼接参数包括:响应于要进行JSON的单条对比,接收所述第一API接口的第一拼接参数和所述第二API接口的第二拼接参数;和,响应于要进行JSON的批量对比,设置所述第一组多个API接口的第一拼接参数和所述第二组多个API接口的第二拼接参数。
如上所述,在根据本申请实施例的JSON对比方法中,可以进行JSON的单条对比或者批量对比。针对JSON的单条对比,在接收要对比的所述第一API接口和所述第二API接口的同时,接收所述第一API接口的第一拼接参数和所述第二API接口的第二拼接参数。
但是,在进行JSON的批量对比时,需要去掉拼接参数,例如URL中的拼接参数,而是将拼接参数写在定制参数中。即,设置所述第一组多个API接口的第一拼接参数和所述第二组多个API接口的第二拼接参数。这里,参数的写入可以是单个输入,也可以是批量上传。
举例来说,在输入基准URL(一般为线上)时,如果是批量对比,在URL中去掉拼接参数,如关键词(keyword),而将关键词写在定制参数里。这里,根据业务类型的不同,定制参数也不同。例如,搜索业务的接口主要定制参数为关键词(keyword),而播放业务的接口主要定制参数为视频id。这里,基准URL的示例为http://imerge.soku.proxy.taobao.org/i/s?,且目标URL(一般为线下)的示例为:http://imerge-pre.soku.proxy.taobao.org/i/s?。
URL支持HTTP POST以及GET方式,以作为HTTP请求的响应返回所述第一JSON或第一组JSON和所述第二JSON或第二组JSON。
因此,在上述JSON对比方法中,获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口包括:接收所述第一组一个或多个API接口的基准URL地址和所述第二组一个或多个API接口的目标URL地址;其中,基于所述URL地址的HTTP请求返回所述第一JSON或第一组JSON和所述第二JSON或第二组JSON。
在上述JSON对比方法中,获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口包括:确定是否获得要进行对比的所述第一组一个或多个API接口和所述第二组一个或多个API接口;以及,响应于未获得所述第一组一个或多个API接口和所述第二组一个或多个API接口,重新执行获得所述第一组一个或多个API接口和所述第二组一个或多个API接口的操作。
也就是说,根据本申请实施例的JSON对比方法中对比的API请求加入了重试操作,从而可以排除API超时等问题对结果的影响,从而排除了API稳定性问题。
图2是根据本申请实施例的JSON对比方法的示例性总体实现的流程图。如图2所示,根据本申请实施例的JSON对比方法的实例包括:S201,确定单条对比或者批量对比;S202,响应于确定为单条对比,输入要对比的两条API接口及其拼接参数;S203,设置要对比的字段;S204,设置要过滤的字段;S205,提交对比任务;S206,树形展示对比结果;S207,响应于确定为批量对比,输入批量API接口文件(例如,批量上传),S208,设置要对比的字段;S209,设置要过滤的字段;S210,设置API接口的拼接参数;S211,提交批量参数值文件;S212,提交对比任务;S213,展示批量统计结果并给出单条差异结果链接。
也就是说,在上述实例中,输入为基准URL(即用于对比的基准API接口地址),目标URL(即用于对比的目标API接口地址),需要对比的字段(即所定义的需要对比的JSON字段),需要过滤的字段(即所定义的不需要对比的JSON字段)和传入传输(即API接口需要的参数,比如拼接参数)。并且,上述实例中的输出为对比结果,例如可以是单条对比结果或者批量对比结果。
JSON对比装置的概述
图3是图示根据本申请实施例的JSON对比装置的示意性框图。如图3所示,根据本申请实施例的JSON对比装置300包括:接口获取单元310,用于获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口,所述第一组一个或多个API接口和所述第二组一个或多个API接口返回JSON;参数确定单元320,用于确定所述接口获取单元310所获取的所述第一组一个或多个API接口的第一拼接参数和所述第二组一个或多个API接口的第二拼接参数;对比单元330,用于对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON;以及展示单元340,用于以树形展示所述对比单元330得到的所述第一JSON和所述第二JSON的单条对比结果,和以表格形式给出所述对比单元330得到的所述第一组JSON和所述第二组JSON的批量对比结果。
在一个实例中,在上述JSON对比装置中,所述展示单元340用于:根据所述第一组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的单条对比或者批量对比;以及,参数提交单元,用于响应于要进行JSON的批量对比,提交批量参数值文件。
在一个实例中,在上述JSON对比装置中,所述参数确定单元用于:响应于要进行JSON的单条对比,接收所述第一API接口的第一拼接参数和所述第二API接口的第二拼接参数;和,响应于要进行JSON的批量对比,设置所述第一组多个API接口的第一拼接参数和所述第二组多个API接口的第二拼接参数。
在一个实例中,在上述JSON对比装置中,所述接口获取单元用于:接收所述第一组一个或多个API接口的基准URL地址和所述第二组一个或多个API接口的目标URL地址;其中,基于所述URL地址的HTTP请求返回所述第一JSON或第一组JSON和所述第二JSON或第二组JSON。
在一个实例中,在上述JSON对比装置中,所述接口获取单元用于:确定是否获得要进行对比的所述第一组一个或多个API接口和所述第二组一个或多个API接口;以及,响应于未获得所述第一组一个或多个API接口和所述第二组一个或多个API接口,重新执行获得所述第一组一个或多个API接口和所述第二组一个或多个API接口的操作。
这里,本领域技术人员可以理解,根据本申请实施例的JSON对比装置的其他细节与之前关于根据本申请实施例的JSON对比方法中描述的相应细节完全相同,这里为了避免冗余便不再赘述。
图4是图示根据本申请实施例的JSON对比装置的系统实现实例的示意性框图。如图4所示,根据本申请实施例的JSON对比装置400主要实现为前端模块410和后端模块420。其中,前端模块410负责输入对比内容和输出对比结果,而后端模块420负责对比运算。
在上述JSON对比装置的各个模块中,接口获取单元、展示单元、设置单元和过滤单元均属于前端模块410,而对比单元属于后端模块420。对于参数确定单元来说,如果是JSON单条对比,则属于前端模块410,直接接收用户的拼接参数的输入,而如果是JSON批量对比,则属于后端模块420,需要进行运算以设置JSON的拼接参数。
因此,本领域技术人员可以从前述关于JSON对比装置的描述理解前端模块410和后端模块420的设置,为了避免冗余不再赘述。
示例性电子设备
下面,参考图5来描述根据本申请实施例的电子设备。该电子设备可以是上述JSON对比方法的硬件实现设备。
图5是图示根据本申请实施例的电子设备的框图。
如图5所示,电子设备500包括一个或多个处理器510和存储器520。
处理器510可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备500中的其他组件以执行期望的功能。
存储器520可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本申请的各个实施例的JSON对比方法以及/或者其他期望的功能。
在一个示例中,电子设备500还可以包括:输入装置530和输出装置540,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是上述JSON对比装置时,该输入装置530可以用于接收各种输入,例如基准URL、目标URL、需要对比的字段、需要过滤的字段、参数等。因此,该输入装置530例如可以是键盘、鼠标等用于接收用户输入的装置。
该输出装置540用于向用户输出对比结果,例如单条对比结果和批量对比结果。该输出设备540可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等。
当然,为了简化,图5中仅示出了该电子设备500中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备500还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的JSON对比方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的JSON对比方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请提供的用于JSON对比方法和装置以及电子设备,可以实现不同API接口的JSON的批量对比,并获得批量对比的直观的汇总结果。
本申请提供的用于JSON对比方法和装置以及电子设备,通过确定不同API接口的拼接参数,不需要对URL拼接进行处理。
本申请提供的用于JSON对比方法和装置以及电子设备,通过直观展示JSON对比结果,可以直接定位到不一致的对象。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (16)

1.一种JSON对比方法,包括:
获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口,所述第一组一个或多个API接口和所述第二组一个或多个API接口返回JSON;
响应于要进行JSON的单条对比,接收所述第一组一个API接口的第一拼接参数和所述第二组一个API接口的第二拼接参数;
响应于要进行JSON的批量对比,去掉所述第一组多个API接口的第一拼接参数和所述第二组多个API接口的第二拼接参数,将所述第一拼接参数和所述第二拼接参数写在定制参数中;其中,所述第一拼接参数和所述第二拼接参数为URL地址中的拼接参数;业务类型不同,则定制参数不同;对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON;
以树形展示所述第一JSON和所述第二JSON的单条对比结果;以及
以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果。
2.根据权利要求1所述的JSON对比方法,其中,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果包括:
根据所述第一组JSON和所述第二组JSON的差异类型,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果;和/或
根据所述第一组JSON和所述第二组JSON的差异比例,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果。
3.根据权利要求1所述的JSON对比方法,其中,对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON之前进一步包括:
设置所述第一JSON或第一组JSON和所述第二JSON或第二组JSON中要对比的字段。
4.根据权利要求1所述的JSON对比方法,其中,对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON之前进一步包括:
过滤所述第一JSON或第一组JSON和所述第二JSON或第二组JSON中不需要关注的对象。
5.根据权利要求1所述的JSON对比方法,其中,获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口之前进一步包括:
确定进行JSON的单条对比或者批量对比;
对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON之前进一步包括:
响应于要进行JSON的批量对比,提交批量参数值文件。
6.根据权利要求1所述的JSON对比方法,其中,获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口包括:
接收所述第一组一个或多个API接口的基准URL地址和所述第二组一个或多个API接口的目标URL地址;
其中,基于所述URL地址的HTTP请求返回所述第一JSON或第一组JSON和所述第二JSON或第二组JSON。
7.根据权利要求1所述的JSON对比方法,其中,获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口包括:
确定是否获得要进行对比的所述第一组一个或多个API接口和所述第二组一个或多个API接口;以及
响应于未获得所述第一组一个或多个API接口和所述第二组一个或多个API接口,重新执行获得所述第一组一个或多个API接口和所述第二组一个或多个API接口的操作。
8.一种JSON对比装置,包括:
接口获取单元,用于获得要进行对比的第一组一个或多个API接口和第二组一个或多个API接口,所述第一组一个或多个API接口和所述第二组一个或多个API接口返回JSON;
参数确定单元,用于响应于要进行JSON的单条对比,接收所述第一组一个API接口的第一拼接参数和所述第二组一个API接口的第二拼接参数;
响应于要进行JSON的批量对比,去掉所述第一组多个API接口的第一拼接参数和所述第二组多个API接口的第二拼接参数,将所述第一拼接参数和所述第二拼接参数写在定制参数中;其中,所述第一拼接参数和所述第二拼接参数为URL地址中的拼接参数;业务类型不同,则定制参数不同;
对比单元,用于对比所述第一组一个或多个API接口返回的第一JSON或第一组JSON和所述第二组一个或多个API接口返回的第二JSON或第二组JSON;
展示单元,用于以树形展示所述第一JSON和所述第二JSON的单条对比结果,和以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果。
9.根据权利要求8所述的JSON对比装置,其中,所述展示单元用于:
根据所述第一组JSON和所述第二组JSON的差异类型,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果;和/或
根据所述第一组JSON和所述第二组JSON的差异比例,以表格形式给出所述第一组JSON和所述第二组JSON的批量对比结果。
10.根据权利要求8所述的JSON对比装置,进一步包括:
设置单元,用于设置所述第一JSON或第一组JSON和所述第二JSON或第二组JSON中要对比的字段;
所述对比单元用于对比所述第一JSON或第一组JSON和所述第二JSON或第二组JSON中所述设置单元设置为要对比的字段。
11.根据权利要求8所述的JSON对比装置,进一步包括:
过滤单元,用于过滤所述第一JSON或第一组JSON和所述第二JSON或第二组JSON中不需要关注的对象;
所述对比单元用于对比所述第一JSON或第一组JSON和所述第二JSON或第二组JSON中由所述过滤单元过滤掉的不需要关注的对象以外的字段。
12.根据权利要求8所述的JSON对比装置,进一步包括:
方式确定单元,用于确定进行JSON的单条对比或者批量对比;以及
参数提交单元,用于响应于要进行JSON的批量对比,提交批量参数值文件。
13.根据权利要求8所述的JSON对比装置,其中,所述接口获取单元用于:
接收所述第一组一个或多个API接口的基准URL地址和所述第二组一个或多个API接口的目标URL地址;
其中,基于所述URL地址的HTTP请求返回所述第一JSON或第一组JSON和所述第二JSON或第二组JSON。
14.根据权利要求8所述的JSON对比装置,其中,所述接口获取单元用于:
确定是否获得要进行对比的所述第一组一个或多个API接口和所述第二组一个或多个API接口;以及
响应于未获得所述第一组一个或多个API接口和所述第二组一个或多个API接口,重新执行获得所述第一组一个或多个API接口和所述第二组一个或多个API接口的操作。
15.一种电子设备,包括:
处理器;以及
存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如权利要求1-7中任一项所述的JSON对比方法。
16.一种计算机可读存储介质,其上存储有计算机程序指令,当所述计算机程序指令被计算装置执行时,可操作来执行如权利要求1-7中任一项所述的JSON对比方法。
CN201711308055.9A 2017-12-11 2017-12-11 Json对比方法和装置以及电子设备 Active CN109901989B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711308055.9A CN109901989B (zh) 2017-12-11 2017-12-11 Json对比方法和装置以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711308055.9A CN109901989B (zh) 2017-12-11 2017-12-11 Json对比方法和装置以及电子设备

Publications (2)

Publication Number Publication Date
CN109901989A CN109901989A (zh) 2019-06-18
CN109901989B true CN109901989B (zh) 2023-12-12

Family

ID=66942192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711308055.9A Active CN109901989B (zh) 2017-12-11 2017-12-11 Json对比方法和装置以及电子设备

Country Status (1)

Country Link
CN (1) CN109901989B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345420A (zh) * 2013-06-03 2013-10-09 百度在线网络技术(北京)有限公司 批量调用api接口的方法、系统和装置
CN103634160A (zh) * 2012-08-28 2014-03-12 深圳市世纪光速信息技术有限公司 基于web的通用互联网产品数据对比测试的方法及装置
CN103927314A (zh) * 2013-01-16 2014-07-16 阿里巴巴集团控股有限公司 一种数据批量处理的方法和装置
CN103970855A (zh) * 2014-05-06 2014-08-06 车智互联(北京)科技有限公司 一种数据处理设备和方法
CN105099811A (zh) * 2015-06-03 2015-11-25 北京金山安全软件有限公司 一种接口测试方法和装置
CN105139184A (zh) * 2015-08-10 2015-12-09 北京思特奇信息技术股份有限公司 一种多元化数据计算方法及系统
CN105335310A (zh) * 2014-06-05 2016-02-17 阿里巴巴集团控股有限公司 一种接口定义方法和数据传输方法及装置
US9367570B1 (en) * 2012-04-09 2016-06-14 Google Inc. Ad hoc queryable JSON with audit trails
CN107193747A (zh) * 2017-05-27 2017-09-22 北京金山安全软件有限公司 代码测试方法、装置和计算机设备
CN107239271A (zh) * 2016-03-29 2017-10-10 滴滴(中国)科技有限公司 开发文档生成方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9921945B2 (en) * 2015-04-06 2018-03-20 Adp, Llc Automatic verification of JSON data
US9959607B2 (en) * 2015-07-07 2018-05-01 Adp, Llc Automatic verification of graphic rendition of JSON data
US9747081B2 (en) * 2015-11-30 2017-08-29 International Business Machines Corporation Undo/redo in JavaScript object notation

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367570B1 (en) * 2012-04-09 2016-06-14 Google Inc. Ad hoc queryable JSON with audit trails
CN103634160A (zh) * 2012-08-28 2014-03-12 深圳市世纪光速信息技术有限公司 基于web的通用互联网产品数据对比测试的方法及装置
CN103927314A (zh) * 2013-01-16 2014-07-16 阿里巴巴集团控股有限公司 一种数据批量处理的方法和装置
CN103345420A (zh) * 2013-06-03 2013-10-09 百度在线网络技术(北京)有限公司 批量调用api接口的方法、系统和装置
CN103970855A (zh) * 2014-05-06 2014-08-06 车智互联(北京)科技有限公司 一种数据处理设备和方法
CN105335310A (zh) * 2014-06-05 2016-02-17 阿里巴巴集团控股有限公司 一种接口定义方法和数据传输方法及装置
CN105099811A (zh) * 2015-06-03 2015-11-25 北京金山安全软件有限公司 一种接口测试方法和装置
CN105139184A (zh) * 2015-08-10 2015-12-09 北京思特奇信息技术股份有限公司 一种多元化数据计算方法及系统
CN107239271A (zh) * 2016-03-29 2017-10-10 滴滴(中国)科技有限公司 开发文档生成方法及装置
CN107193747A (zh) * 2017-05-27 2017-09-22 北京金山安全软件有限公司 代码测试方法、装置和计算机设备

Also Published As

Publication number Publication date
CN109901989A (zh) 2019-06-18

Similar Documents

Publication Publication Date Title
US9600400B1 (en) Performance testing of web application components using image differentiation
JP6514244B2 (ja) 差異検出装置及びプログラム
US9053199B2 (en) Uniquely identifying script files by appending a unique identifier to a URL
CN110221899B (zh) 一种用户界面的调节方法、装置及系统
US9792267B2 (en) Simplifying identification of potential non-visibility of user interface components when responsive web pages are rendered by disparate devices
CN110941779B (zh) 加载页面的方法、装置、存储介质及电子设备
CN113382083B (zh) 一种网页截图方法和装置
CN111367595A (zh) 数据处理方法、程序运行方法、装置及处理设备
CN115576974B (zh) 数据处理方法、装置、设备和介质
CN108415998B (zh) 应用依赖关系更新方法、终端、设备及存储介质
CN110968314A (zh) 一种页面生成方法及装置
JP6723976B2 (ja) テスト実行装置及びプログラム
EP3889770B1 (en) Mini program material processing
CN109901989B (zh) Json对比方法和装置以及电子设备
US8302045B2 (en) Electronic device and method for inspecting electrical rules of circuit boards
CN113138974B (zh) 数据库合规检测的方法和装置
US9111014B1 (en) Rule builder for data processing
CN115033436A (zh) 页面测试方法及装置、电子设备、存储介质
CN115687704A (zh) 信息显示方法、装置、电子设备及计算机可读存储介质
CN111338941B (zh) 信息处理方法和装置、电子设备和存储介质
CN114428823B (zh) 基于多维变量表达式的数据联动方法、装置、设备和介质
CN110515618B (zh) 页面信息录入优化方法、设备、存储介质及装置
US9864739B1 (en) Automatic layout of graphical user interface screens from object data
CN113626665B (zh) 一种数据展示的方法和装置
CN111427870B (zh) 一种资源管理方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right

Effective date of registration: 20200518

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: Zone A and C, 5 / F, block a, Sinosteel International Plaza, No. 8, Haidian Street

Applicant before: Youku network technology (Beijing) Co.,Ltd.

TA01 Transfer of patent application right
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant