JSONObject和JSONArray的排序
发布时间:2020-12-16 19:06:42 所属栏目:百科 来源:网络整理
导读:运行环境:java1.8 方法: /** * 对jsonarray做比较:size不同,返回false; 排序后的String对比,不相同返回false; * @param expect * @param actual * @return */public static boolean compareJsonArray(JSONArray expect,JSONArray actual) {int expect_s
运行环境:java1.8
方法: /** * 对jsonarray做比较:size不同,返回false; 排序后的String对比,不相同返回false; * @param expect * @param actual * @return */ public static boolean compareJsonArray(JSONArray expect,JSONArray actual) { int expect_size = expect.size(); int actual_size = actual.size(); if (expect_size != actual_size) { logger.error("the two JSONArrays' size is not equal >>" + "expect JSONArray's size is [[" + expect.size() + "]],but actual JSONArray's size is [[" + actual.size() + "]]"); return false; } if (!sortJsonArray(expect).toString().equals( sortJsonArray(actual).toString())) { logger.error("the two JSONArrays' value is not equal >>" + "expect is rn" + expect + ",rnbut actual is rn" + actual); return false; } return true; } /** * JSONObject排序 * * @param obj * @return */ @SuppressWarnings("all") public static JSONObject sortJsonObject(JSONObject obj) { Map map = new TreeMap(); Iterator<String> it = obj.keys(); while (it.hasNext()) { String key = it.next(); Object value = obj.get(key); if (value instanceof JSONObject) { // System.out.println(value + " is JSONObject"); map.put(key,sortJsonObject(JSONObject.fromObject(value))); } else if (value instanceof JSONArray) { // System.out.println(value + " is JSONArray"); map.put(key,sortJsonArray(JSONArray.fromObject(value))); } else { map.put(key,value); } } return JSONObject.fromObject(map); } /** * JSONArray排序 * * @param array * @return */ @SuppressWarnings("all") public static JSONArray sortJsonArray(JSONArray array) { List list = new ArrayList(); int size = array.size(); for (int i = 0; i < size; i++) { Object obj = array.get(i); if (obj instanceof JSONObject) { list.add(sortJsonObject(JSONObject.fromObject(obj))); } else if (obj instanceof JSONArray) { list.add(sortJsonArray(JSONArray.fromObject(obj))); } else { list.add(obj); } } list.sort((o1,o2) -> o1.toString().compareTo(o2.toString())); return JSONArray.fromObject(list); }
测试: String j1 = "{"group":[{"group_id":"10408","group_name":"u4e94u89d2u573au9ec4u5174u5e97","last_uptime":"2015-05-20 10:39:16","create_time":"2015-05-20 10:30:12"},{"group_id":"10414","group_name":"u95e8u5e9798131","last_uptime":"2015-05-20 10:40:04","create_time":"2015-05-20 10:36:03"}]}"; String j2 = "{"group":[{"group_id":"10408","create_time":"2015-05-20 10:36:03"}]}"; String j3 = "{"group":[{"group_id":"10414","create_time":"2015-05-20 10:36:03"},{"group_id":"10408","create_time":"2015-05-20 10:30:12"}]}"; String j4 = "{"group":[{"group_id":"10415","create_time":"2015-05-20 10:30:12"}]}"; String j5 = "{"group":[{"group_id":"10408","create_time":"2015-05-20 10:30:12"}]}"; String j6 = "{"group":[{"create_time":"2015-05-20 10:30:12","group_id":"10408","last_uptime":"2015-05-20 10:39:16"},"create_time":"2015-05-20 10:36:03","group_name":"u95e8u5e9798131"}]}"; JSONObject o1 = JSONObject.fromObject(j1); JSONObject o2 = JSONObject.fromObject(j2); JSONObject o3 = JSONObject.fromObject(j3); JSONObject o4 = JSONObject.fromObject(j4); JSONObject o5 = JSONObject.fromObject(j5); JSONObject o6 = JSONObject.fromObject(j6); JSONArray a1 = o1.getJSONArray("group"); JSONArray a2 = o2.getJSONArray("group"); JSONArray a3 = o3.getJSONArray("group"); JSONArray a4 = o4.getJSONArray("group"); JSONArray a5 = o5.getJSONArray("group"); JSONArray a6 = o6.getJSONArray("group"); System.out.println("a1 和 a2比较: " + CompareUtil.compareJsonArray(a1,a2)); System.out.println("a1 和 a3比较: " + CompareUtil.compareJsonArray(a1,a3)); System.out.println("a1 和 a4比较: " + CompareUtil.compareJsonArray(a1,a4)); System.out.println("a1 和 a5比较: " + CompareUtil.compareJsonArray(a1,a5)); System.out.println("a1 和 a6比较: " + CompareUtil.compareJsonArray(a1,a6)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |