renameDeeply function
rename keyPath
in data
to newKey
Implementation
dynamic renameDeeply(List keyPath, dynamic newKey, dynamic data, [int i = 0]) {
if (data is Map) {
if (!data.containsKey(keyPath[i])) {
return data;
} else {
if (keyPath.length == i + 1) {
data[newKey] = data[keyPath[i]];
data.remove(keyPath[i]);
return data;
}
}
} else {
return data;
}
data[keyPath[i]] = renameDeeply(keyPath, newKey, data[keyPath[i]], ++i);
return data;
}