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 'ApiApprovedEventData':
return ApiApprovedEventData.fromJson(value);
case 'ApiError':
return ApiError.fromJson(value);
case 'ApiRejectedEventData':
return ApiRejectedEventData.fromJson(value);
case 'AppliedEventData':
return AppliedEventData.fromJson(value);
case 'ApprovedEventData':
return ApprovedEventData.fromJson(value);
case 'AprType':
return AprTypeTypeTransformer().decode(value);
case 'BankAccountType':
return BankAccountTypeTypeTransformer().decode(value);
case 'BatchConsentVersion':
return BatchConsentVersionTypeTransformer().decode(value);
case 'CardBenefit':
return CardBenefitTypeTransformer().decode(value);
case 'CardPurpose':
return CardPurposeTypeTransformer().decode(value);
case 'CardType':
return CardTypeTypeTransformer().decode(value);
case 'CarrierDecisionType':
return CarrierDecisionTypeTypeTransformer().decode(value);
case 'CitizenshipStatus':
return CitizenshipStatusTypeTransformer().decode(value);
case 'CompoundingMethod':
return CompoundingMethodTypeTransformer().decode(value);
case 'ConversionEventData':
return ConversionEventData.fromJson(value);
case 'CreditCardOffer':
return CreditCardOffer.fromJson(value);
case 'CreditCardOfferDetails':
return CreditCardOfferDetails.fromJson(value);
case 'EducationLevel':
return EducationLevelTypeTransformer().decode(value);
case 'EmploymentPayFrequency':
return EmploymentPayFrequencyTypeTransformer().decode(value);
case 'EmploymentStatus':
return EmploymentStatusTypeTransformer().decode(value);
case 'EventData':
return EventData.fromJson(value);
case 'EventType':
return EventTypeTypeTransformer().decode(value);
case 'FeaturedFinancialInstitution':
return FeaturedFinancialInstitution.fromJson(value);
case 'FederalInsuranceType':
return FederalInsuranceTypeTypeTransformer().decode(value);
case 'FundedEventData':
return FundedEventData.fromJson(value);
case 'Gender':
return GenderTypeTransformer().decode(value);
case 'GraduateDegreeType':
return GraduateDegreeTypeTypeTransformer().decode(value);
case 'IdType':
return IdTypeTypeTransformer().decode(value);
case 'IncentiveDetails':
return IncentiveDetails.fromJson(value);
case 'IncentiveType':
return IncentiveTypeTypeTransformer().decode(value);
case 'IncentiveUnit':
return IncentiveUnitTypeTransformer().decode(value);
case 'IntroOfferType':
return IntroOfferTypeTypeTransformer().decode(value);
case 'Lead':
return Lead.fromJson(value);
case 'LeadAction':
return LeadAction.fromJson(value);
case 'LeadActionType':
return LeadActionTypeTypeTransformer().decode(value);
case 'LeadAutoInsuranceInformationJson':
return LeadAutoInsuranceInformationJson.fromJson(value);
case 'LeadAutoInsuranceInformationJsonAdditionalOperatorsInner':
return LeadAutoInsuranceInformationJsonAdditionalOperatorsInner
.fromJson(value);
case 'LeadAutoInsuranceInformationJsonPolicyHolderInformation':
return LeadAutoInsuranceInformationJsonPolicyHolderInformation
.fromJson(value);
case 'LeadAutoInsuranceInformationJsonVehiclesInner':
return LeadAutoInsuranceInformationJsonVehiclesInner.fromJson(value);
case 'LeadAutoInsuranceIssuerJson':
return LeadAutoInsuranceIssuerJson.fromJson(value);
case 'LeadAutoInsuranceVehicleMakeJson':
return LeadAutoInsuranceVehicleMakeJson.fromJson(value);
case 'LeadAutoInsuranceVehicleMakesJson':
return LeadAutoInsuranceVehicleMakesJson.fromJson(value);
case 'LeadAutoInsuranceVehicleModelJson':
return LeadAutoInsuranceVehicleModelJson.fromJson(value);
case 'LeadAutoInsuranceVehicleModelsJson':
return LeadAutoInsuranceVehicleModelsJson.fromJson(value);
case 'LeadAutoInsuranceVehicleTrimsJson':
return LeadAutoInsuranceVehicleTrimsJson.fromJson(value);
case 'LeadAutoInsuranceVehicleTrimsJsonTrimsInner':
return LeadAutoInsuranceVehicleTrimsJsonTrimsInner.fromJson(value);
case 'LeadAutoInsuranceVehicleYearsJson':
return LeadAutoInsuranceVehicleYearsJson.fromJson(value);
case 'LeadBestTimeToCall':
return LeadBestTimeToCallTypeTransformer().decode(value);
case 'LeadClientTag':
return LeadClientTag.fromJson(value);
case 'LeadClientTagsResponse':
return LeadClientTagsResponse.fromJson(value);
case 'LeadCoApplicantInformationJson':
return LeadCoApplicantInformationJson.fromJson(value);
case 'LeadCreateData':
return LeadCreateData.fromJson(value);
case 'LeadCreditCardInformationJson':
return LeadCreditCardInformationJson.fromJson(value);
case 'LeadCreditInformationJson':
return LeadCreditInformationJson.fromJson(value);
case 'LeadEducationInformationJson':
return LeadEducationInformationJson.fromJson(value);
case 'LeadEmploymentInformationJson':
return LeadEmploymentInformationJson.fromJson(value);
case 'LeadEvent':
return LeadEvent.fromJson(value);
case 'LeadEventResponse':
return LeadEventResponse.fromJson(value);
case 'LeadFinancialInformation':
return LeadFinancialInformation.fromJson(value);
case 'LeadHealthInformationJson':
return LeadHealthInformationJson.fromJson(value);
case 'LeadIdentificationInformationJson':
return LeadIdentificationInformationJson.fromJson(value);
case 'LeadInfoResponse':
return LeadInfoResponse.fromJson(value);
case 'LeadInfoResponseData':
return LeadInfoResponseData.fromJson(value);
case 'LeadLegalInformationJson':
return LeadLegalInformationJson.fromJson(value);
case 'LeadLoanInformationJson':
return LeadLoanInformationJson.fromJson(value);
case 'LeadMortgageInformationJson':
return LeadMortgageInformationJson.fromJson(value);
case 'LeadPayout':
return LeadPayout.fromJson(value);
case 'LeadPayoutResponse':
return LeadPayoutResponse.fromJson(value);
case 'LeadPersonalInformation':
return LeadPersonalInformation.fromJson(value);
case 'LeadPersonalReferenceInformationJson':
return LeadPersonalReferenceInformationJson.fromJson(value);
case 'LeadRefinanceLoanInformationJson':
return LeadRefinanceLoanInformationJson.fromJson(value);
case 'LeadSavingsInformationJson':
return LeadSavingsInformationJson.fromJson(value);
case 'LeadSessionInformationJson':
return LeadSessionInformationJson.fromJson(value);
case 'LeadUuid':
return LeadUuid.fromJson(value);
case 'LifeInsuranceOffer':
return LifeInsuranceOffer.fromJson(value);
case 'LifeInsuranceOfferDetails':
return LifeInsuranceOfferDetails.fromJson(value);
case 'ListedEventData':
return ListedEventData.fromJson(value);
case 'LoanOffer':
return LoanOffer.fromJson(value);
case 'LoanPurpose':
return LoanPurposeTypeTransformer().decode(value);
case 'MaritalStatus':
return MaritalStatusTypeTransformer().decode(value);
case 'MedicalExam':
return MedicalExamTypeTransformer().decode(value);
case 'MortechCreditRating':
return MortechCreditRatingTypeTransformer().decode(value);
case 'MortgageAdjustmentType':
return MortgageAdjustmentTypeTypeTransformer().decode(value);
case 'MortgageLoanType':
return MortgageLoanTypeTypeTransformer().decode(value);
case 'MortgageOffer':
return MortgageOffer.fromJson(value);
case 'MortgageOfferDetails':
return MortgageOfferDetails.fromJson(value);
case 'MortgageType':
return MortgageTypeTypeTransformer().decode(value);
case 'OccupancyType':
return OccupancyTypeTypeTransformer().decode(value);
case 'Offer':
return Offer.fromJson(value);
case 'OfferClickedEventData':
return OfferClickedEventData.fromJson(value);
case 'OfferDisplay':
return OfferDisplay.fromJson(value);
case 'OfferDisplayCreateData':
return OfferDisplayCreateData.fromJson(value);
case 'OpenedEventData':
return OpenedEventData.fromJson(value);
case 'Originator':
return Originator.fromJson(value);
case 'OriginatorImage':
return OriginatorImage.fromJson(value);
case 'PackageType':
return PackageTypeTypeTransformer().decode(value);
case 'Partner':
return Partner.fromJson(value);
case 'PendingResponse':
return PendingResponse.fromJson(value);
case 'PersonalReferenceRelationType':
return PersonalReferenceRelationTypeTypeTransformer().decode(value);
case 'PrefillResponse':
return PrefillResponse.fromJson(value);
case 'PreviewDetail':
return PreviewDetail.fromJson(value);
case 'ProductSubType':
return ProductSubTypeTypeTransformer().decode(value);
case 'ProductType':
return ProductTypeTypeTransformer().decode(value);
case 'PropertySearchStatus':
return PropertySearchStatusTypeTransformer().decode(value);
case 'PropertyStatus':
return PropertyStatusTypeTransformer().decode(value);
case 'PropertyType':
return PropertyTypeTypeTransformer().decode(value);
case 'ProvidedCreditRating':
return ProvidedCreditRatingTypeTransformer().decode(value);
case 'PurchaseStatus':
return PurchaseStatusTypeTransformer().decode(value);
case 'RateTable':
return RateTable.fromJson(value);
case 'RateTableAdditionalOffers':
return RateTableAdditionalOffers.fromJson(value);
case 'RefinanceLoanType':
return RefinanceLoanTypeTypeTransformer().decode(value);
case 'RefinanceType':
return RefinanceTypeTypeTransformer().decode(value);
case 'RejectReason':
return RejectReasonTypeTransformer().decode(value);
case 'SavingsOffer':
return SavingsOffer.fromJson(value);
case 'SavingsOfferDetails':
return SavingsOfferDetails.fromJson(value);
case 'SessionInit':
return SessionInit.fromJson(value);
case 'SessionInitCreateData':
return SessionInitCreateData.fromJson(value);
case 'SpecialOffer':
return SpecialOffer.fromJson(value);
case 'State':
return StateTypeTransformer().decode(value);
case 'TermUnit':
return TermUnitTypeTransformer().decode(value);
case 'VehicleDetails':
return VehicleDetails.fromJson(value);
case 'VehicleInformation':
return VehicleInformation.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',
);
}