writePath function
Sets the value at path in a JSON document using dot notation.
Creates intermediate objects as needed. Paths like 'user.profile.age' will create nested objects if they don't exist.
Implementation
void writePath(JsonMap json, String path, Object? value) {
final segments = path.split('.');
JsonMap current = json;
for (var index = 0; index < segments.length - 1; index++) {
final segment = segments[index];
final next = current[segment];
if (next is Map<dynamic, dynamic>) {
current = next.cast<String, dynamic>();
continue;
}
final replacement = <String, dynamic>{};
current[segment] = replacement;
current = replacement;
}
current[segments.last] = value;
}