jsonValue function

dynamic jsonValue(
  1. dynamic v
)

Implementation

dynamic jsonValue(v) {
  if(v == null) return null;
  if(v is Map)       return v.map((k,v) => MapEntry('$k', recordValue(v)));
  if(v is Iterable)  return v.map((e) => recordValue(e));
  if(v is String)    return v;
  if(v is num)       return v;
  if(v is bool)      return v;
  if(v is Enum)      return v.name;
  if(v is ObjectId)  return v.hexString;
  if(v is DateTime)  return v.millisecondsSinceEpoch;
  try {
    return v.toJson();
  } catch(e) {
    return v.toString();
  }
}