Observation.fromJson constructor
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>?,
);
}