Observation.fromJson constructor

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

Creates an Observation from a JSON map.

Used for deserializing observation data from API responses or local storage. Handles the snake_case to camelCase conversion for field names.

Example:

final json = {
  'id': 'obs_123',
  'species_scientific_name': 'Aedes aegypti',
  'count': 1,
  'location': {'lat': 40.7128, 'lng': -74.0060},
  'observed_at': '2024-01-15T14:30:22Z',
  // ... other fields
};
final observation = Observation.fromJson(json);

Implementation

factory Observation.fromJson(Map<String, dynamic> json) {
  return Observation(
    id: json['id'] as String,
    speciesScientificName: json['species_scientific_name'] as String,
    count: json['count'] as int,
    location: Location.fromJson(json['location'] as Map<String, dynamic>),
    observedAt: DateTime.parse(json['observed_at'] as String),
    notes: json['notes'] as String?,
    userId: json['user_id'] as String?,
    locationAccuracyM: json['location_accuracy_m'] as int?,
    dataSource: json['data_source'] as String?,
    imageFilename: json['image_filename'] as String?,
    modelId: json['model_id'] as String?,
    confidence: (json['confidence'] as num?)?.toDouble(),
    metadata: json['metadata'] as Map<String, dynamic>?,
  );
}