fromJson static method
Returns a native instance of an OpenAPI class matching the targetType.
Implementation
static dynamic fromJson(
dynamic value,
String targetType, {
bool growable = false,
}) {
try {
switch (targetType) {
case 'String':
return value is String ? value : value.toString();
case 'int':
return value is int ? value : int.parse('$value');
case 'double':
return value is double ? value : double.parse('$value');
case 'bool':
if (value is bool) {
return value;
}
final valueString = '$value'.toLowerCase();
return valueString == 'true' || valueString == '1';
case 'DateTime':
return value is DateTime ? value : DateTime.tryParse(value);
case 'AircraftContract':
return AircraftContract.fromJson(value);
case 'AircraftContractImage':
return AircraftContractImage.fromJson(value);
case 'AircraftContractPagedCollectionContract':
return AircraftContractPagedCollectionContract.fromJson(value);
case 'AircraftRecognitionResultContract':
return AircraftRecognitionResultContract.fromJson(value);
case 'AircraftRegistrationContract':
return AircraftRegistrationContract.fromJson(value);
case 'AircraftSearchByEnum':
return AircraftSearchByEnumTypeTransformer().decode(value);
case 'AirportCodesByEnum':
return AirportCodesByEnumTypeTransformer().decode(value);
case 'AirportContinentContract':
return AirportContinentContract.fromJson(value);
case 'AirportContract':
return AirportContract.fromJson(value);
case 'AirportContractCurrentTime':
return AirportContractCurrentTime.fromJson(value);
case 'AirportContractUrls':
return AirportContractUrls.fromJson(value);
case 'AirportCountryContract':
return AirportCountryContract.fromJson(value);
case 'AirportDelayContract':
return AirportDelayContract.fromJson(value);
case 'AirportDistanceTimeContract':
return AirportDistanceTimeContract.fromJson(value);
case 'AirportFeedServiceStatusContract':
return AirportFeedServiceStatusContract.fromJson(value);
case 'AirportFidsContract':
return AirportFidsContract.fromJson(value);
case 'AirportFlightContract':
return AirportFlightContract.fromJson(value);
case 'AirportFlightContractAircraft':
return AirportFlightContractAircraft.fromJson(value);
case 'AirportFlightContractAirline':
return AirportFlightContractAirline.fromJson(value);
case 'AirportFlightContractArrival':
return AirportFlightContractArrival.fromJson(value);
case 'AirportFlightContractDeparture':
return AirportFlightContractDeparture.fromJson(value);
case 'AirportFlightContractLocation':
return AirportFlightContractLocation.fromJson(value);
case 'AirportFlightContractMovement':
return AirportFlightContractMovement.fromJson(value);
case 'AirportLocalTimeContract':
return AirportLocalTimeContract.fromJson(value);
case 'Angle':
return Angle.fromJson(value);
case 'Azimuth':
return Azimuth.fromJson(value);
case 'CloudCover':
return CloudCoverTypeTransformer().decode(value);
case 'CodeshareStatus':
return CodeshareStatusTypeTransformer().decode(value);
case 'CreateWebHookSubscription':
return CreateWebHookSubscription.fromJson(value);
case 'DailyRouteStatContract':
return DailyRouteStatContract.fromJson(value);
case 'DailyRouteStatRecordContract':
return DailyRouteStatRecordContract.fromJson(value);
case 'DateTimeContract':
return DateTimeContract.fromJson(value);
case 'DayTime':
return DayTimeTypeTransformer().decode(value);
case 'DelayBracketContract':
return DelayBracketContract.fromJson(value);
case 'Distance':
return Distance.fromJson(value);
case 'EngineType':
return EngineTypeTypeTransformer().decode(value);
case 'ErrorContract':
return ErrorContract.fromJson(value);
case 'FeedServiceEnum':
return FeedServiceEnumTypeTransformer().decode(value);
case 'FeedServiceStatus':
return FeedServiceStatusTypeTransformer().decode(value);
case 'FeedServiceStatusContract':
return FeedServiceStatusContract.fromJson(value);
case 'FlightAircraftContract':
return FlightAircraftContract.fromJson(value);
case 'FlightAircraftContractImage':
return FlightAircraftContractImage.fromJson(value);
case 'FlightAirlineContract':
return FlightAirlineContract.fromJson(value);
case 'FlightAirportMovementContract':
return FlightAirportMovementContract.fromJson(value);
case 'FlightAirportMovementContractRevisedTime':
return FlightAirportMovementContractRevisedTime.fromJson(value);
case 'FlightAirportMovementContractRunwayTime':
return FlightAirportMovementContractRunwayTime.fromJson(value);
case 'FlightAirportMovementContractScheduledTime':
return FlightAirportMovementContractScheduledTime.fromJson(value);
case 'FlightAirportMovementQualityEnum':
return FlightAirportMovementQualityEnumTypeTransformer()
.decode(value);
case 'FlightBatchDelayContract':
return FlightBatchDelayContract.fromJson(value);
case 'FlightContract':
return FlightContract.fromJson(value);
case 'FlightContractGreatCircleDistance':
return FlightContractGreatCircleDistance.fromJson(value);
case 'FlightDataGeneralAvailabilityContract':
return FlightDataGeneralAvailabilityContract.fromJson(value);
case 'FlightDelayContract':
return FlightDelayContract.fromJson(value);
case 'FlightDirection':
return FlightDirectionTypeTransformer().decode(value);
case 'FlightLegDelayContract':
return FlightLegDelayContract.fromJson(value);
case 'FlightLocationContract':
return FlightLocationContract.fromJson(value);
case 'FlightNotificationContract':
return FlightNotificationContract.fromJson(value);
case 'FlightNotificationContractSubscription':
return FlightNotificationContractSubscription.fromJson(value);
case 'FlightSearchByEnum':
return FlightSearchByEnumTypeTransformer().decode(value);
case 'FlightStatus':
return FlightStatusTypeTransformer().decode(value);
case 'GeoCoordinatesContract':
return GeoCoordinatesContract.fromJson(value);
case 'GeoCoordinatesContractListingAirportContractSearchResultCollectionContract':
return GeoCoordinatesContractListingAirportContractSearchResultCollectionContract
.fromJson(value);
case 'LicenseType':
return LicenseTypeTypeTransformer().decode(value);
case 'ListingAirportContract':
return ListingAirportContract.fromJson(value);
case 'ListingAirportContractLocation':
return ListingAirportContractLocation.fromJson(value);
case 'ModelFlightTimeEnum':
return ModelFlightTimeEnumTypeTransformer().decode(value);
case 'PercentileBracketContract':
return PercentileBracketContract.fromJson(value);
case 'PhenomenaGroup':
return PhenomenaGroupTypeTransformer().decode(value);
case 'Pressure':
return Pressure.fromJson(value);
case 'ResourceContract':
return ResourceContract.fromJson(value);
case 'RunwayContract':
return RunwayContract.fromJson(value);
case 'RunwayContractDisplacedThreshold':
return RunwayContractDisplacedThreshold.fromJson(value);
case 'RunwayContractLength':
return RunwayContractLength.fromJson(value);
case 'RunwayContractLocation':
return RunwayContractLocation.fromJson(value);
case 'RunwayContractWidth':
return RunwayContractWidth.fromJson(value);
case 'SolarStateContract':
return SolarStateContract.fromJson(value);
case 'SolarStateContractDawnAstronomical':
return SolarStateContractDawnAstronomical.fromJson(value);
case 'SolarStateContractDawnCivil':
return SolarStateContractDawnCivil.fromJson(value);
case 'SolarStateContractDawnNautical':
return SolarStateContractDawnNautical.fromJson(value);
case 'SolarStateContractDuskAstronomical':
return SolarStateContractDuskAstronomical.fromJson(value);
case 'SolarStateContractDuskCivil':
return SolarStateContractDuskCivil.fromJson(value);
case 'SolarStateContractDuskNautical':
return SolarStateContractDuskNautical.fromJson(value);
case 'SolarStateContractNoonTrue':
return SolarStateContractNoonTrue.fromJson(value);
case 'SolarStateContractSunrise':
return SolarStateContractSunrise.fromJson(value);
case 'SolarStateContractSunset':
return SolarStateContractSunset.fromJson(value);
case 'Speed':
return Speed.fromJson(value);
case 'StatisticClass':
return StatisticClassTypeTransformer().decode(value);
case 'StringCollectionContract':
return StringCollectionContract.fromJson(value);
case 'StringListingAirportContractSearchResultCollectionContract':
return StringListingAirportContractSearchResultCollectionContract
.fromJson(value);
case 'SubscriberContract':
return SubscriberContract.fromJson(value);
case 'SubscriptionContract':
return SubscriptionContract.fromJson(value);
case 'SubscriptionSubjectContract':
return SubscriptionSubjectContract.fromJson(value);
case 'SubscriptionSubjectType':
return SubscriptionSubjectTypeTypeTransformer().decode(value);
case 'SurfaceType':
return SurfaceTypeTypeTransformer().decode(value);
case 'Temperature':
return Temperature.fromJson(value);
case 'WeatherStateContract':
return WeatherStateContract.fromJson(value);
case 'WeatherStateContractAirTemperature':
return WeatherStateContractAirTemperature.fromJson(value);
case 'WeatherStateContractCloudBase':
return WeatherStateContractCloudBase.fromJson(value);
case 'WeatherStateContractDewPoint':
return WeatherStateContractDewPoint.fromJson(value);
case 'WeatherStateContractPressure':
return WeatherStateContractPressure.fromJson(value);
case 'WeatherStateContractVisibility':
return WeatherStateContractVisibility.fromJson(value);
case 'WeatherStateContractWind':
return WeatherStateContractWind.fromJson(value);
case 'WindContract':
return WindContract.fromJson(value);
case 'WindContractGusts':
return WindContractGusts.fromJson(value);
default:
dynamic match;
if (value is List &&
(match = _regList.firstMatch(targetType)?.group(1)) != null) {
return value
.map<dynamic>((dynamic v) => fromJson(
v,
match,
growable: growable,
))
.toList(growable: growable);
}
if (value is Set &&
(match = _regSet.firstMatch(targetType)?.group(1)) != null) {
return value
.map<dynamic>((dynamic v) => fromJson(
v,
match,
growable: growable,
))
.toSet();
}
if (value is Map &&
(match = _regMap.firstMatch(targetType)?.group(1)) != null) {
return Map<String, dynamic>.fromIterables(
value.keys.cast<String>(),
value.values.map<dynamic>((dynamic v) => fromJson(
v,
match,
growable: growable,
)),
);
}
}
} on Exception catch (error, trace) {
throw ApiException.withInner(
HttpStatus.internalServerError,
'Exception during deserialization.',
error,
trace,
);
}
throw ApiException(
HttpStatus.internalServerError,
'Could not find a suitable class for deserialization',
);
}