JSON文件差异化对比方法及装置与流程

文档序号:26101429发布日期:2021-07-30 18:12阅读:来源:国知局

技术特征:

1.一种json文件差异化对比方法,其特征在于,所述方法应用于计算机设备,所述方法包括:

格式规范检测步骤,检测待比对的第一测试样本文件与第二测试样本文件是否符合json格式规范;

文本转换步骤,在所述第一测试样本文件与所述第二测试样本文件符合json格式规范时,将所述第一测试样本文件与所述第二测试样本文件转换为jsonobject;

键查找步骤,按照顺序从所述第一测试样本文件中获取第一键值对的键,在所述第二测试样本文件中查找具有与所述第一键值对的键相等的第二键值对;

值对比步骤,在查找到与所述第一键值对的键相等的第二键值对时,将所述第一键值对的值与所述第二键值对的值进行比对,在所述第一键值对的值与所述第二键值对的值比对结束后,回到所述键查找步骤中获取所述第一测试样本文件中的下一个第一键值对的键,其中,在所述第一键值对的值与所述第二键值对的值不相同时,记录所述第一键值对的值与所述第二键值对的值不相同的信息;

重复键查找步骤及值对比步骤直到所述第一测试样本文件中的最后一个第一键值对,输出所述第一测试样本文件与所述第二测试样本文件差异化对比的比对结果,其中,所述比对结果包括所述第一键值对的值与所述第二键值对的值不相同的信息。

2.如权利要求1所述的json文件差异化对比方法,其特征在于,所述值对比步骤,包括:

在查找到与所述第一键值对的键相等的第二键值对时,根据所述第一键值对的值的数据类型,按照预先设定的类型对比规则将所述第一键值对的值与所述第二键值对的值进行比对。

3.如权利要求2所述的json文件差异化对比方法,其特征在于,在所述第一键值对的值的数据类型为jsonobject时,所述在查找到与所述第一键值对的键相等的第二键值对时,根据所述第一键值对的值的数据类型,按照预先设定的类型对比规则将所述第一键值对的值与所述第二键值对的值进行比对的步骤,包括:

判断所述第二键值对的值的数据类型和取值;

若所述第二键值对的值的取值为null,则记录本次比对中所述第一键值对与所述第二键值对之间的不相同的信息;

若所述第二键值对的值的数据类型不为jsonobject,则记录本次比对中所述第一键值对的值的数据类型与所述第二键值对的值的数据类型不同;

若所述第二键值对的值的数据类型为jsonobject,将所述第一键值对的值做为第一测试样本文件,所述第二键值对的值做为第二测试样本文件执行所述键查找步骤及所述值对比步骤,直到所述第一键值对的值完全遍历,并记录所述第一键值对的值与所述第二键值对的值之间的不相同的信息。

4.如权利要求2所述的json文件差异化对比方法,其特征在于,在所述第一键值对的值的数据类型为jsonarray时,所述在查找到与所述第一键值对的键相等的第二键值对时,根据所述第一键值对的值的数据类型,按照预先设定的类型对比规则将所述第一键值对的值与所述第二键值对的值进行比对的步骤,包括:

判断所述第二键值对的值的数据类型和取值;

若所述第二键值对的值的取值为null,则记录本次比对中所述第一键值对与所述第二键值对之间的不相同的信息;

若所述第二键值对的值的数据类型不为jsonarray,则记录本次比对中所述第一键值对的值的数据类型与所述第二键值对的值的数据类型不同;

若所述第二键值对的值的数据类型为jsonarray,则判断所述第一键值对的值的数组长度是否与所述第二键值对的值的数组长度一致,若数组长度不一致,则记录本次对比中所述第一键值对的值的数组长度与所述第二键值对的值的数组长度不一致;若数组长度一致,将所述第一键值对的值与所述第二键值对的值按照相同排序规则进行排序,依次获取所述第一键值对的值中的数组元素与所述第二键值对的值中的数组元素,并执行所述键查找步骤及所述值对比步骤,直到所述第一键值对的值中的数组元素与所述第二键值对的值中的数组元素对比完成,并记录所述第一键值对的值与所述第二键值对的值之间的不相同的信息。

5.如权利要求2所述的json文件差异化对比方法,其特征在于,在所述第一键值对的值的数据类型为字符串类型时,所述在查找到与所述第一键值对的键相等的第二键值对时,根据所述第一键值对的值的数据类型,按照预先设定的类型对比规则将所述第一键值对的值与所述第二键值对的值进行比对的步骤,包括:

判断所述第二键值对的值的数据类型;

若所述第二键值对的值的数据类型不为字符串类型,则记录本次比对中所述第一键值对的值的数据类型与所述第二键值对的值的数据类型不同;

若所述第二键值对的值的数据类型为字符串类型,比较所述第一键值对的值与所述第二键值对的值是否相等;

若所述第一键值对的值与所述第二键值对的值不相等,记录本次比对中所述第一键值的值与所述第二键值对的值不相同;

若所述第一键值对的值与所述第二键值对的值相等,则不对本次比对结果进行记录。

6.如权利要求1-5中任意一项所述的json文件差异化对比方法,其特征在于,所述方法还包括对所述比对结果进行分析的步骤,该步骤包括:

检测所述比对结果是否为空;

若所述比对结果为空,则分析所述第一测试样本文件与所述第二测试样本文件完全相同;

若所述比对结果不为空,则分析所述所述第一测试样本文件与所述第二测试样本文件存在差异内容,其中,所述比对结果中的内容即为所述差异内容。

7.一种json文件差异化对比装置,其特征在于,所述装置应用于计算机设备,所述装置包括:

格式规范检测模块,用于检测待比对的第一测试样本文件与第二测试样本文件是否符合json格式规范;

文本转换模块,用于在所述第一测试样本文件与所述第二测试样本文件符合json格式规范时,将所述第一测试样本文件与所述第二测试样本文件转换为jsonobject;

键查找模块,用于按照顺序从所述第一测试样本文件中获取第一键值对的键,在所述第二测试样本文件中查找具有与所述第一键值对的键相等的第二键值对;

值对比模块,用于在查找到与所述第一键值对的键相等的第二键值对时,将所述第一键值对的值与所述第二键值对的值进行比对,在所述第一键值对的值与所述第二键值对的值比对结束后,执行所述键查找模块获取所述第一测试样本文件中的下一个第一键值对的键,其中,在所述第一键值对的值与所述第二键值对的值不相同时,记录所述第一键值对的值与所述第二键值对的值不相同的信息;

重复执行所述键查找模块及所述值对比模块的功能直到所述第一测试样本文件中的最后一个第一键值对,输出所述第一测试样本文件与所述第二测试样本文件差异化对比的比对结果,其中,所述比对结果包括所述第一键值对的值与所述第二键值对的值不相同的信息。

8.如权利要求7所述的json文件差异化对比装置,其特征在于,在所述第一键值对的值的数据类型为jsonobject时,所述值对比模块用于:

判断所述第二键值对的值的数据类型和取值;

若所述第二键值对的值的取值为null,则记录本次比对中所述第一键值对与所述第二键值对之间的不相同的信息;

若所述第二键值对的值的数据类型不为jsonobject,则记录本次比对中所述第一键值对的值的数据类型与所述第二键值对的值的数据类型不同;

若所述第二键值对的值的数据类型为jsonobject,将所述第一键值对的值做为第一测试样本文件,所述第二键值对的值做为第二测试样本文件执行所述键查找模块及所述值对比模块的功能,直到所述第一键值对的值完全遍历,并记录所述第一键值对的值与所述第二键值对的值之间的不相同的信息。

9.如权利要求7所述的json文件差异化对比装置,其特征在于,在所述第一键值对的值的数据类型为jsonarray时,所述值对比模块用于:

判断所述第二键值对的值的数据类型和取值;

若所述第二键值对的值的取值为null,则记录本次比对中所述第一键值对与所述第二键值对之间的不相同的信息;

若所述第二键值对的值的数据类型不为jsonarray,则记录本次比对中所述第一键值对的值的数据类型与所述第二键值对的值的数据类型不同;

若所述第二键值对的值的数据类型为jsonarray,则判断所述第一键值对的值的数组长度是否与所述第二键值对的值的数组长度一致,若数组长度不一致,则记录本次对比中所述第一键值对的值的数组长度与所述第二键值对的值的数组长度不一致;若数组长度一致,将所述第一键值对的值与所述第二键值对的值按照相同排序规则进行排序,依次获取所述第一键值对的值中的数组元素与所述第二键值对的值中的数组元素,并执行所述键查找模块及所述值对比模块的功能,直到所述第一键值对的值中的数组元素与所述第二键值对的值中的数组元素对比完成,并记录所述第一键值对的值与所述第二键值对的值之间的不相同的信息。

10.如权利要求7所述的json文件差异化对比装置,其特征在于,在所述第一键值对的值的数据类型为字符串类型时,所述值对比模块用于:

判断所述第二键值对的值的数据类型;

若所述第二键值对的值的数据类型不为字符串类型,则记录本次比对中所述第一键值对的值的数据类型与所述第二键值对的值的数据类型不同;

若所述第二键值对的值的数据类型为字符串类型,比较所述第一键值对的值与所述第二键值对的值是否相等;

若所述第一键值对的值与所述第二键值对的值不相等,记录本次比对中所述第一键值的值对与所述第二键值对的值不相同;

若所述第一键值对的值与所述第二键值对的值相等,则不对本次比对结果进行记录。


技术总结
本申请实施例提供的JSON文件差异化对比方法及装置,涉及数据处理技术领域。通过遍历第一测试样本文件中的第一键值对的键并从第二测试样本文件中找到与第一键值的键相同的第二键值对,并通过对比第一键值对的值与第二键值对的值,得到第一测试样本文件与第二测试样本文件差异化的比对结果。上述方案可以减少对JSON测试样本文件的排序预操作,解决无序比对准确率低以及误判的技术问题;同时还无需人为二次参与比对结果的识别及统计,如此可以降低人为操作的误判风险提升工作效率;再者输出比对结果可以便于JSON测试样本文件比对差异的跟踪与回溯;另外,相对现有技术只需要一次遍历可以降低对比过程对计算资源的占用,提高文本对比的速度。

技术研发人员:顾凌云;郭志攀;王伟;赵晖
受保护的技术使用者:南京冰鉴信息科技有限公司
技术研发日:2021.06.30
技术公布日:2021.07.30
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1