toMapStringDynamic static method

Map<String, dynamic>? toMapStringDynamic(
  1. dynamic json, {
  2. bool ensureUniqueKey = false,
})

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;
}