convertKeysToSnakeCase function
dynamic
convertKeysToSnakeCase(
- dynamic obj
Implementation
dynamic convertKeysToSnakeCase(dynamic obj) {
if (obj is! Map<String, dynamic>) {
return obj; // Return as is if obj is not a map
}
if (obj is List) {
// If obj is a list, recursively convert keys for each item in the list
return (obj as List<Map<String, dynamic>>)
.map((item) => convertKeysToSnakeCase(item))
.toList();
}
Map<String, dynamic> snakeCaseObj = {};
obj.forEach((key, value) {
// Convert key to snake case
String snakeCaseKey = key.replaceAllMapped(
RegExp(r'([A-Z])'), (match) => '_${match.group(0)!.toLowerCase()}');
// Recursively convert keys for nested maps
snakeCaseObj[snakeCaseKey] = convertKeysToSnakeCase(value);
});
return snakeCaseObj;
}