JAVA怎么对比两个JSON是否一致
来源:网络收集 点击: 时间:2024-07-22解决思路:用相同的请求参数同时调用新接口和旧接口,然后对比返回的java对象。基于线上业务实际运行代码,若返回数据一直等价,则认为新旧接口逻辑一致。在这里,将返回对象转换为json,然后通过Gson解析json,对比json是否等价来确定java对象是否等价。
2/5解决方案:先将两个java对象转换为json,然后通过gson将json转换为JsonElement对象,分别实现两个JsonElement对象为4种具体对象时的比较方案,然后递归比较。其中,若两个对象为JsonObject(即json对象),分别比较每个key对应的value是否相等;若两个对象为JsonArray(即json数组),先将其转换为List,并且按照List对象转换为json字符串时的字典序排序,再分别比较两个List中的对应对象是否等价,从而避免了json数组无序的问题。
3/5





导入的gson的maven库为
!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --
dependency
groupIdcom.google.code.gson/groupId
artifactIdgson/artifactId
version2.8.2/version
/dependency
5/5用法示例如下:
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String args) {
ListString obj1 = Arrays.asList(1, 2, 3);
ListString obj2 = Arrays.asList(1, 3, 2);
System.out.println(JsonSameUtil.same(obj1, obj2)); // true
String str1 = ;
String str2 = ;
System.out.println(JsonSameUtil.same(str1, str2)); // true
}
}
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_985861.html