JSON文本的比对方法及装置制造方法及图纸

技术编号:30435843 阅读:24 留言:0更新日期:2021-10-24 17:36
本申请提供了一种JSON文本的比对方法及装置,可用于金融领域或其他领域,该方法包括:获取第一JSON报文和第二JSON报文;将第一JSON报文转化为LinkedHashMap类型的第一报文,并将第二JSON报文转化为LinkedHashMap类型的第二报文;根据所述第一报文和第二报文,生成第一解析结果集和第二解析结果集;根据所述第一解析结果集和第二解析结果集,得到比对结果列表并输出。本申请能够提高JSON文本比对的准确性。性。性。

【技术实现步骤摘要】
JSON文本的比对方法及装置


[0001]本申请涉及数据处理
,尤其涉及一种JSON文本的比对方法及装置。

技术介绍

[0002]JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,在服务端测试过程中经常需要对返回的JSON报文进行比对,以便于找出其中的差异,判断服务端返回的JSON报文中的内容是否符合预期。
[0003]现有的比对JSON报文的方案主要有两种,第一种是依靠人工肉眼对比两个JSON报文;第二种是使用其他已公开的网页比对工具,比如站长工具对JSON报文进行比对。但是,JSON报文中的键值对是无序的,服务端每次接收的JSON报文中的键值对顺序都会改变,键值对顺序改变后的两个SON字符串实质是相同的。由于站长工具只能对文本进行对比,如果两个JSON报文中的键值对顺序发生改变,站长工具返回与实际对比结论不一致的错误的对比结果。

技术实现思路

[0004]针对现有技术中的问题,本申请提出了一种JSON文本的比对方法及装置,能够提高JSON文本比对的准确性。
[0005]为了解决上述技术问题,本申请提供以下技术方案:
[0006]第一方面,本申请提供一种JSON文本的比对方法,包括:
[0007]获取第一JSON报文和第二JSON报文;
[0008]将第一JSON报文转化为LinkedHashMap类型的第一报文,并将第二JSON报文转化为LinkedHashMap类型的第二报文;
[0009]根据所述第一报文和第二报文,生成第一解析结果集和第二解析结果集;
[0010]根据所述第一解析结果集和第二解析结果集,得到比对结果列表并输出。
[0011]进一步地,所述根据所述第一报文和第二报文,生成第一解析结果集和第二解析结果集,包括:
[0012]根据所述第一报文中的键值对和该键值对中的值的数据类型,生成第一解析结果集;
[0013]根据所述第二报文中的键值对和该键值对中的值的数据类型,生成第二解析结果集。
[0014]进一步地,所述根据所述第一报文中的键值对和该键值对中的值的数据类型,生成第一解析结果集,包括:
[0015]将所述第一报文作为目标报文,将第一报文中的首位的键值对作为目标键值对,执行遍历步骤,该遍历步骤包括:若所述目标键值对中的值符合第一判断条件或者第二判断条件,则将所述目标报文的JSON路径和目标键值对中的键组成当前JSON路径,将所述目标键值对的值作为当前JSON路径对应的值,加入第一解析结果集;
[0016]若所述目标报文存在下一位的键值对,则将该下一位的键值对作为新的目标键值对,目标报文保持不变,返回执行所述遍历步骤;
[0017]若所述目标报文不存在下一位的键值对、该目标报文与第一报文不同并且第一报文存在下一位的键值对,则将所述第一报文的下一位的键值对作为目标键值对,第一报文作为目标报文,返回执行所述遍历步骤;
[0018]若所述目标报文不存在下一位的键值对、该目标报文与第一报文不同并且第一报文不存在下一位的键值对,则中止当前操作;
[0019]若所述目标报文为第一报文并且不存在下一位的键值对,则中止当前操作;
[0020]所述第一判断条件为所述目标键值对的值不是Map类型并且不是列表类型;所述第二判断条件为所述目标键值对的值为列表类型并且列表中的子元素不是Map类型。
[0021]进一步地,所述根据所述第二报文中的键值对和该键值对中的值的数据类型,生成第二解析结果集,包括:
[0022]将所述第二报文作为目标报文,将第二报文中的首位的键值对作为目标键值对,执行遍历步骤,该遍历步骤包括:若所述目标键值对中的值符合第一判断条件或者第二判断条件,则将所述目标报文的JSON路径和目标键值对中的键组成当前JSON路径,将所述目标键值对的值作为当前JSON路径对应的值,加入第二解析结果集;
[0023]若所述目标报文存在下一位的键值对,则将该下一位的键值对作为新的目标键值对,目标报文保持不变,返回执行所述遍历步骤;
[0024]若所述目标报文不存在下一位的键值对、该目标报文与第二报文不同并且第二报文存在下一位的键值对,则将所述第二报文的下一位的键值对作为目标键值对,第二报文作为目标报文,返回执行所述遍历步骤;
[0025]若所述目标报文不存在下一位的键值对、该目标报文与第二报文不同并且第二报文不存在下一位的键值对,则中止当前操作;
[0026]若所述目标报文为第二报文并且不存在下一位的键值对,则中止当前操作;
[0027]所述第一判断条件为所述目标键值对的值不是Map类型并且不是列表类型;所述第二判断条件为所述目标键值对的值为列表类型并且列表中的子元素不是Map类型。
[0028]进一步地,所述遍历步骤,还包括:
[0029]若所述目标键值对的值为Map类型,则将所述目标键值对的值转化成LinkedHashMap类型后作为新的目标报文,将目标报文的JSON路径和目标键值对中的键组成新的目标报文的JSON路径,将新的目标报文中首位的键值对作为新的目标键值对,返回执行所述遍历步骤。
[0030]进一步地,所述遍历步骤,还包括:
[0031]若所述目标键值对的值为列表类型并且列表中的子元素为Map类型,则将所述子元素转化成LinkedHashMap类型后作为新的目标报文,将目标报文的JSON路径和目标键值对中的键组成新的目标报文的JSON路径,将新的目标报文中首位的键值对作为新的目标键值对,返回执行所述遍历步骤。
[0032]进一步地,所述根据所述第一解析结果集和第二解析结果集,得到比对结果列表并输出,包括:
[0033]根据所述第一解析结果集和第二解析结果集中的当前JSON路径和值,生成比对结
果列表并输出。
[0034]第二方面,本申请提供一种JSON文本的比对装置,包括:
[0035]获取模块,用于获取第一JSON报文和第二JSON报文;
[0036]转化模块,用于将第一JSON报文转化为LinkedHashMap类型的第一报文,并将第二JSON报文转化为LinkedHashMap类型的第二报文;
[0037]生成模块,用于根据所述第一报文和第二报文,生成第一解析结果集和第二解析结果集;
[0038]比对模块,用于根据所述第一解析结果集和第二解析结果集,得到比对结果列表并输出。
[0039]第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的JSON文本的比对方法。
[0040]第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述的JSON文本的比对方法。
[0041]由上述技术方案可知,本申请提供一种JSON文本的比对方法及装置。其中,该方法包括本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种JSON文本的比对方法,其特征在于,包括:获取第一JSON报文和第二JSON报文;将第一JSON报文转化为LinkedHashMap类型的第一报文,并将第二JSON报文转化为LinkedHashMap类型的第二报文;根据所述第一报文和第二报文,生成第一解析结果集和第二解析结果集;根据所述第一解析结果集和第二解析结果集,得到比对结果列表并输出。2.根据权利要求1所述的JSON文本的比对方法,其特征在于,所述根据所述第一报文和第二报文,生成第一解析结果集和第二解析结果集,包括:根据所述第一报文中的键值对和该键值对中的值的数据类型,生成第一解析结果集;根据所述第二报文中的键值对和该键值对中的值的数据类型,生成第二解析结果集。3.根据权利要求2所述的JSON文本的比对方法,其特征在于,所述根据所述第一报文中的键值对和该键值对中的值的数据类型,生成第一解析结果集,包括:将所述第一报文作为目标报文,将第一报文中的首位的键值对作为目标键值对,执行遍历步骤,该遍历步骤包括:若所述目标键值对中的值符合第一判断条件或者第二判断条件,则将所述目标报文的JSON路径和目标键值对中的键组成当前JSON路径,将所述目标键值对的值作为当前JSON路径对应的值,加入第一解析结果集;若所述目标报文存在下一位的键值对,则将该下一位的键值对作为新的目标键值对,目标报文保持不变,返回执行所述遍历步骤;若所述目标报文不存在下一位的键值对、该目标报文与第一报文不同并且第一报文存在下一位的键值对,则将所述第一报文的下一位的键值对作为目标键值对,第一报文作为目标报文,返回执行所述遍历步骤;若所述目标报文不存在下一位的键值对、该目标报文与第一报文不同并且第一报文不存在下一位的键值对,则中止当前操作;若所述目标报文为第一报文并且不存在下一位的键值对,则中止当前操作;所述第一判断条件为所述目标键值对的值不是Map类型并且不是列表类型;所述第二判断条件为所述目标键值对的值为列表类型并且列表中的子元素不是Map类型。4.根据权利要求2所述的JSON文本的比对方法,其特征在于,所述根据所述第二报文中的键值对和该键值对中的值的数据类型,生成第二解析结果集,包括:将所述第二报文作为目标报文,将第二报文中的首位的键值对作为目标键值对,执行遍历步骤,该遍历步骤包括:若所述目标键值对中的值符合第一判断条件或者第二判断条件,则将所述目标报文的JSON路径和目标键值对中的键组成当前JSON路径,将所述目标键值对的值作为当前JSON路径对应的值,加入第二解析结果集;若所述目标报文存在下一位的键值对,则将该下一位的键值对作为新的目标键值对,目标...

【专利技术属性】
技术研发人员:邓权威暨光耀韩靖张洁芳
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1