比较两个json是否相等,忽略数组内元素顺序
2016-01-29 10:08
916 查看
借助com.google.gson包比较2个json是否相等,忽略json数组的顺序
/*** 比较两个JsonElement是否相等,json数组顺序不影响
* @param jsonElementX
* @param jsonElementY
* @return
*/
public static boolean isJsonElementEquals(JsonElement jsonElementX, JsonElement jsonElementY){
if(jsonElementX.isJsonObject() && jsonElementY.isJsonObject()){
JsonObject jsonObjectX = (JsonObject)jsonElementX;
JsonObject jsonObjectY = (JsonObject)jsonElementY;
if(jsonObjectX.entrySet().size()!=jsonObjectY.entrySet().size())return false;
for(Map.Entry<String,JsonElement>jsonElementEntryX:jsonObjectX.entrySet()) {
boolean flag = false;
for(Map.Entry<String,JsonElement>jsonElementEntryY:jsonObjectX.entrySet()) {
if (jsonElementEntryX.getKey().equals(jsonElementEntryY.getKey())) {
if(isJsonElementEquals(jsonElementEntryX.getValue(),jsonElementEntryY.getValue())){
flag = true;
break;
}
}
}
if (!flag) {
return false;
}
}
}
else if(jsonElementX.isJsonArray() && jsonElementY.isJsonArray()){
JsonArray jsonArrayX = (JsonArray)jsonElementX;
JsonArray jsonArrayY = (JsonArray)jsonElementY;
if(jsonArrayX.size()!=jsonArrayY.size())return false;
for(int i=0;i<jsonArrayX.size();i++){
boolean flag = false;
for(int j=0;j<jsonArrayY.size();j++){
if(isJsonElementEquals(jsonArrayX.get(i),jsonArrayY.get(j))){
flag = true;
break;
}
}
if (!flag) {
return false;
}
}
}
else if(jsonElementX.isJsonPrimitive() && jsonElementY.isJsonPrimitive()){
if(((JsonPrimitive)jsonElementX).equals((JsonPrimitive)jsonElementY)){
return true;
}
}else if(jsonElementX.isJsonNull() && jsonElementY.isJsonNull()){
return true;
}else{
return false;
}
return true;
}
相关文章推荐
- XML 与 JSON 优劣对比
- VBA将excel数据表生成JSON文件
- newtonsoft.json解析天气数据出错解决方法
- vbs 解析json jsonp的方法
- Extjs4如何处理后台json数据中日期和时间
- C#实现将类的内容写成JSON格式字符串的方法
- JQuery ajax返回JSON时的处理方式 (三种方式)
- jquery JSON的解析方式示例介绍
- c#版json数据解析示例分享
- ASP JSON类文件的使用方法
- C#实现对Json字符串处理实例
- C#实现Json转Unicode的方法
- php解析json数据实例
- PHP中JSON的应用技巧
- PHP6 先修班 JSON实例代码
- 关于JSON以及JSON在PHP中的应用技巧
- .Net中的json操作类用法分析
- C#操作 JSON方法汇总
- JavaScript中字符串(string)转json的2种方法
- js Object2String方便查看js对象内容