Skip to content

Commit

Permalink
Fix cascade
Browse files Browse the repository at this point in the history
  • Loading branch information
hexiaofeng committed Feb 27, 2025
1 parent b44b903 commit 7e2f125
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,12 @@ public static Map<String, Object> cascade(Map<String, Object> flatMap) {
while (list.size() <= index) {
list.add(null);
}
list.set(index, i == size - 1 ? new HashMap<>() : value);
if (i == size - 1) {
list.set(index, value);
} else {
parent = new HashMap<>();
list.set(index, parent);
}
} else if (i == size - 1) {
parent.put(part, value);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,15 @@ void testCascade() {
Map<String, Object> map = new HashMap<>();
map.put("key4.a[0].c", "value5");
map.put("key4.a[1].c", "value6");
map.put("key8.a[0]", "value5");
map.put("key8.a[1]", "value6");
map.put("key1", "value1");
map.put("key3.key4", "value3");
map.put("key3.key5", "value4");
map.put("key61]", "value7");
map.put("key7[]", "value8");
Map<String, Object> cascaded = CollectionUtils.cascade(map);
Assertions.assertEquals("{key1=value1, key3={key5=value4, key4=value3}, key61]=value7, key4={a=[value5, value6], c=value5}, key7[]=value8}", cascaded.toString());
Assertions.assertEquals("{key1=value1, key3={key5=value4, key4=value3}, key4={a=[{c=value5}, {c=value6}]}, key7[]=value8, key8={a=[value5, value6]}, key61]=value7}", cascaded.toString());
}


Expand Down

0 comments on commit 7e2f125

Please sign in to comment.