HourlyWeatherData.fromJson constructor
HourlyWeatherData.fromJson( - Map<String, dynamic> json
)
Implementation
factory HourlyWeatherData.fromJson(Map<String, dynamic> json) {
final hourly = json['hourly'] as Map<String, dynamic>;
final times = (hourly['time'] as List).cast<String>();
final temperatures = (hourly['temperature_2m'] as List).cast<num>();
final humidities = hourly.containsKey('relative_humidity_2m')
? (hourly['relative_humidity_2m'] as List).cast<num?>()
: null;
final windSpeeds = hourly.containsKey('wind_speed_10m')
? (hourly['wind_speed_10m'] as List).cast<num?>()
: null;
final precipitations = hourly.containsKey('precipitation')
? (hourly['precipitation'] as List).cast<num?>()
: null;
final data = <HourlyWeatherPoint>[];
for (var i = 0; i < times.length; i++) {
data.add(
HourlyWeatherPoint(
time: DateTime.parse(times[i]),
temperature: temperatures[i].toDouble(),
humidity: humidities?[i]?.toInt(),
windSpeed: windSpeeds?[i]?.toDouble(),
precipitation: precipitations?[i]?.toDouble(),
),
);
}
return HourlyWeatherData(
data: data,
startDate: data.first.time,
endDate: data.last.time,
);
}