fromJson method

void fromJson(
  1. Map<String, dynamic> json
)

Fills model data from a map (e.g., database).

Implementation

void fromJson(Map<String, dynamic> json) {
  _rawData = Map<String, dynamic>.from(json); // Store raw data

  id = json['id'] as int?;
  for (final key in json.keys) {
    var value = json[key];
    // Apply casts
    if (casts.containsKey(key)) {
      final castType = casts[key];
      if (castType == DateTime && value is String) {
        value = DateTime.tryParse(value);
      } else if (castType == int && value is String) {
        value = int.tryParse(value);
      } else if (castType == double && value is String) {
        value = double.tryParse(value);
      } else if (castType == bool && value is String) {
        value = value.toLowerCase() == 'true';
      }
    }

    setField(key, value);
  }
}