toJsonMap method

Map<String, dynamic> toJsonMap({
  1. JsonOptions options = const JsonOptions(),
  2. Object? toEncodable(
    1. dynamic object
    )?,
})

Converts this map to a Map<String, dynamic> with JSON-encodable values.

  • Non-string keys are stringified with toString().
  • Honors options for null filtering, key sorting, etc.
  • toEncodable can transform app-specific objects.

Implementation

Map<String, dynamic> toJsonMap({
  JsonOptions options = const JsonOptions(),
  Object? Function(dynamic object)? toEncodable,
}) {
  final out = <String, dynamic>{};
  forEach((key, value) {
    if (options.dropNulls && value == null) return;
    out[key.toString()] = jsonSafe(
      value,
      options: options,
      toEncodable: toEncodable,
    );
  });
  return options.sortKeys
      ? SplayTreeMap<String, dynamic>.from(out, (a, b) => a.compareTo(b))
      : out;
}