toMapStringDynamic static method
Converts dynamic to Map<String, dynamic>.
Args: json: The value to convert. ensureUniqueKey: If true, uses putIfAbsent to avoid overwriting duplicate keys.
Implementation
static Map<String, dynamic>? toMapStringDynamic(
dynamic json, {
bool ensureUniqueKey = false,
}) {
if (json == null) return null;
if (json is Map<String, dynamic>) return json;
if (json is Map<dynamic, dynamic>) {
if (ensureUniqueKey) {
final Map<String, dynamic> result = <String, dynamic>{};
json.forEach((dynamic key, dynamic value) {
// ignore: require_future_error_handling
result.putIfAbsent(key.toString(), () => value);
});
return result;
}
return json.map(
(dynamic key, dynamic value) => MapEntry<String, dynamic>(key.toString(), value),
);
}
return null;
}