setValueAtPath function

void setValueAtPath(
  1. Map<String, dynamic> json,
  2. List<String> path,
  3. dynamic newValue
)

Implementation

void setValueAtPath(
  Map<String, dynamic> json,
  List<String> path,
  dynamic newValue,
) {
  dynamic value = json;
  for (int i = 0; i < path.length - 1; i++) {
    String key = path[i];
    if (value is Map<String, dynamic>) {
      if (!value.containsKey(key)) {
        value[key] = <String, dynamic>{};
      }
      value = value[key];
    } else {
      return;
    }
  }
  value[path.last] = newValue;
}