fromJson static method
Returns a new SolarStateContract instance and imports its values from
value if it's a Map, null otherwise.
Implementation
// ignore: prefer_constructors_over_static_methods
static SolarStateContract? fromJson(dynamic value) {
if (value is Map) {
final json = value.cast<String, dynamic>();
// Ensure that the map contains the required keys.
// Note 1: the values aren't checked for validity beyond being non-null.
// Note 2: this code is stripped in release mode!
assert(() {
requiredKeys.forEach((key) {
assert(json.containsKey(key),
'Required key "SolarStateContract[$key]" is missing from JSON.');
assert(json[key] != null,
'Required key "SolarStateContract[$key]" has a null value in JSON.');
});
return true;
}());
return SolarStateContract(
location: GeoCoordinatesContract.fromJson(json[r'location'])!,
sunElevation: Angle.fromJson(json[r'sunElevation'])!,
sunAzimuth: Azimuth.fromJson(json[r'sunAzimuth'])!,
dayTime: DayTime.listFromJson(json[r'dayTime']),
dawnAstronomical: SolarStateContractDawnAstronomical.fromJson(
json[r'dawnAstronomical']),
dawnNautical:
SolarStateContractDawnNautical.fromJson(json[r'dawnNautical']),
dawnCivil: SolarStateContractDawnCivil.fromJson(json[r'dawnCivil']),
sunrise: SolarStateContractSunrise.fromJson(json[r'sunrise']),
noonTrue: SolarStateContractNoonTrue.fromJson(json[r'noonTrue']),
sunset: SolarStateContractSunset.fromJson(json[r'sunset']),
duskCivil: SolarStateContractDuskCivil.fromJson(json[r'duskCivil']),
duskNautical:
SolarStateContractDuskNautical.fromJson(json[r'duskNautical']),
duskAstronomical: SolarStateContractDuskAstronomical.fromJson(
json[r'duskAstronomical']),
);
}
return null;
}