java 比较json对象_测试两个JSON对象是否相等,忽略Java中的子顺序

小智..

5

我正在使用它,并且对我来说很好(使用org.json。*):

package com.project1.helpers;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import java.util.HashMap;

import java.util.HashSet;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

public class JSONUtils {

public static boolean areEqual(Object ob1, Object ob2) throws JSONException {

Object obj1Converted = convertJsonElement(ob1);

Object obj2Converted = convertJsonElement(ob2);

return obj1Converted.equals(obj2Converted);

}

private static Object convertJsonElement(Object elem) throws JSONException {

if (elem instanceof JSONObject) {

JSONObject obj = (JSONObject) elem;

Iterator keys = obj.keys();

Map jsonMap = new HashMap<>();

while (keys.hasNext()) {

String key = keys.next();

jsonMap.put(key, convertJsonElement(obj.get(key)));

}

return jsonMap;

} else if (elem instanceof JSONArray) {

JSONArray arr = (JSONArray) elem;

Set jsonSet = new HashSet<>();

for (int i = 0; i < arr.length(); i++) {

jsonSet.add(convertJsonElement(arr.get(i)));

}

return jsonSet;

} else {

return elem;

}

}

}


版权声明:本文为weixin_29784009原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。