Skip to content

Commit 6273ff2

Browse files
committed
fix-to(array): 修复循环比较
1. 修复设置忽略顺序情况下会一直循环比较
1 parent b80ac43 commit 6273ff2

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

json-diff-core/src/main/java/me/codeleep/jsondiff/core/handle/array/ComplexArrayJsonNeat.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public JsonCompareResult ignoreOrder(JSONArray expect, JSONArray actual) {
8989
continue;
9090
}
9191
for (actualIndex = 0; actualIndex < len; actualIndex++) {
92-
if (actualFlag[actualIndex]) {
92+
if (actualFlag[actualIndex] || expectFlag[expectIndex]) {
9393
continue;
9494
}
9595
Object expectItem = expect.get(expectIndex);
@@ -104,14 +104,16 @@ public JsonCompareResult ignoreOrder(JSONArray expect, JSONArray actual) {
104104
if (!diff.isMatch()) {
105105
result.mergeDefects(diff.getDefectsList());
106106
}
107-
continue;
107+
} else {
108+
Defects defects = new Defects()
109+
.setActual(actualItem)
110+
.setExpect(expectItem)
111+
.setTravelPath(nextTravelPath)
112+
.setIllustrateTemplate(DATA_TYPE_INCONSISTENT, ClassUtil.getClassName(expectItem), ClassUtil.getClassName(actualItem));
113+
result.addDefects(defects);
108114
}
109-
Defects defects = new Defects()
110-
.setActual(actualItem)
111-
.setExpect(expectItem)
112-
.setTravelPath(nextTravelPath)
113-
.setIllustrateTemplate(DATA_TYPE_INCONSISTENT, ClassUtil.getClassName(expectItem), ClassUtil.getClassName(actualItem));
114-
result.addDefects(defects);
115+
expectFlag[expectIndex] = true;
116+
actualFlag[actualIndex] = true;
115117
}
116118
}
117119
return result;

0 commit comments

Comments
 (0)