比较两个json是否相等,忽略数组内元素顺序
来源:互联网 发布:软件成熟度模型二手 编辑:程序博客网 时间:2024/05/16 05:54
借助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;
}
* 比较两个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;
}
0 0
- 比较两个json是否相等,忽略数组内元素顺序
- Javascript比较两个数组是否相等(存在重复元素)
- 比较两个数组是否相等
- 比较两个Json对象是否相等
- 比较两个JSON字符串是否完全相等
- 比较两个字节数组是否相等
- 比较两个二维数组是否相等
- 如何比较两个二维数组是否相等
- javascript比较两个数组是否相等
- php如何比较两个数组是否相等???
- 比较两个List是否相等(相同元素)
- Gson:比较两个JSON字符串是否完全相等
- JS中如何比较两个Json对象是否相等
- 比较一个数组内的数据是否相等
- C#中比较两个值型一维数组变量是否值相等
- C#中比较两个值型一维数组变量是否值相等
- C#中比较两个值型一维数组变量是否值相等
- 比较两个一维数组的内容是否相等
- IE11的F12的功能无法正常使用
- 制药工业4.0 智慧工厂探索
- IOS 宏与常量的使用
- mongodb 2 搭建
- Android开发笔记-Android Studio中安装Genymotion插件解决方案
- 比较两个json是否相等,忽略数组内元素顺序
- JAVA笔记——将excel解析为对象(通用模板)
- 楼教主的百度程序大赛答题源码
- Python 网络编程socket说明
- mongodb 3 解压安装
- 网站 手机版 电脑版 相互切换
- php5.5以上版本curl上传图片(兼容php5.5以下版本)
- WCF双工模式服务端回调客户端
- mongodb 2 用户名跟密码创建