先说我遇到的需求 不考虑顺序的情况下对比两个json数组字符串是否相同,json字符串是一个数组,代码和json字符串结构如下:
public static void main(String[] args) throws IOException {
//json字符串
String json1 = "[{\"sdd_code\":\"123456\",\"qutity\":\"2\"},{\"sdd_code\":\"789456\",\"qutity\":\"1\"}]";
String json2 = "[{\"sdd_code\":\"789456\",\"qutity\":\"1\"},{\"sdd_code\":\"123456\",\"qutity\":\"2\"}]";
//先用fastjson把json字符串转成数组
JSONArray jsonArray1 = JSONArray.parseArray(json1);
JSONArray jsonArray2 = JSONArray.parseArray(json2);
//对比数组的长度是否相同
if (jsonArray1.size() == jsonArray2.size()){
//不考虑顺序的情况下对比两个数组是否相同
if(jsonArray1.containsAll(jsonArray2)){
System.out.println("相同");
}else {
System.out.println("不相同");
}
}else {
System.out.println("不相同");
}
}