convertToJson function

dynamic convertToJson(
  1. dynamic value, [
  2. bool useConverter = true,
  3. dynamic toJson(
    1. dynamic object
    )?
])

Implementation

dynamic convertToJson(
  dynamic value, [
  bool useConverter = true,
  dynamic Function(dynamic object)? toJson,
]) {
  if (useConverter) {
    if (_converters.containsKey(value.runtimeType)) {
      final converter = _converters[value.runtimeType] as JsonConverter;
      return converter.toJson(value);
    }
  }

  if (_toJsonFactories.containsKey(value.runtimeType)) {
    final toJson = _toJsonFactories[value.runtimeType]!;
    return toJson(value);
  }

  if (value is List) {
    return value.map((e) => convertToJson(e)).toList();
  }

  if (value is Map) {
    return value.map((key, value) => MapEntry(key, convertToJson(value)));
  }

  if (value is DateTime) {
    return value.toUtc().toIso8601String();
  }

  return value;
}