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 'AddPolicyRule201Response':
return AddPolicyRule201Response.fromJson(value);
case 'AddSuppressionRequest':
return AddSuppressionRequest.fromJson(value);
case 'AddSuppressionRequestEntriesInner':
return AddSuppressionRequestEntriesInner.fromJson(value);
case 'AddSuppressionResponse':
return AddSuppressionResponse.fromJson(value);
case 'CheckSuppressionRequest':
return CheckSuppressionRequest.fromJson(value);
case 'CreateJobFromS3Request':
return CreateJobFromS3Request.fromJson(value);
case 'CreateJobRequest':
return CreateJobRequest.fromJson(value);
case 'CreatePolicyFromPresetRequest':
return CreatePolicyFromPresetRequest.fromJson(value);
case 'CreatePolicyRequest':
return CreatePolicyRequest.fromJson(value);
case 'DeleteJob200Response':
return DeleteJob200Response.fromJson(value);
case 'DeletePolicy200Response':
return DeletePolicy200Response.fromJson(value);
case 'DeletePolicyRule200Response':
return DeletePolicyRule200Response.fromJson(value);
case 'ErrorResponse':
return ErrorResponse.fromJson(value);
case 'GetPresignedUploadRequest':
return GetPresignedUploadRequest.fromJson(value);
case 'HealthCheck200Response':
return HealthCheck200Response.fromJson(value);
case 'Job':
return Job.fromJson(value);
case 'JobListResponse':
return JobListResponse.fromJson(value);
case 'JobResponse':
return JobResponse.fromJson(value);
case 'JobSummary':
return JobSummary.fromJson(value);
case 'Pagination':
return Pagination.fromJson(value);
case 'Policy':
return Policy.fromJson(value);
case 'PolicyListResponse':
return PolicyListResponse.fromJson(value);
case 'PolicyListResponseLimits':
return PolicyListResponseLimits.fromJson(value);
case 'PolicyPresetsResponse':
return PolicyPresetsResponse.fromJson(value);
case 'PolicyPresetsResponsePresetsInner':
return PolicyPresetsResponsePresetsInner.fromJson(value);
case 'PolicyResponse':
return PolicyResponse.fromJson(value);
case 'PolicyRule':
return PolicyRule.fromJson(value);
case 'PolicyRuleAction':
return PolicyRuleAction.fromJson(value);
case 'PolicyTestResponse':
return PolicyTestResponse.fromJson(value);
case 'PresignedUploadResponse':
return PresignedUploadResponse.fromJson(value);
case 'PresignedUploadResponseUpload':
return PresignedUploadResponseUpload.fromJson(value);
case 'RemoveSuppression200Response':
return RemoveSuppression200Response.fromJson(value);
case 'RemoveSuppressionRequest':
return RemoveSuppressionRequest.fromJson(value);
case 'ResultsResponse':
return ResultsResponse.fromJson(value);
case 'SuppressionCheckResponse':
return SuppressionCheckResponse.fromJson(value);
case 'SuppressionEntry':
return SuppressionEntry.fromJson(value);
case 'SuppressionListResponse':
return SuppressionListResponse.fromJson(value);
case 'SuppressionStatsResponse':
return SuppressionStatsResponse.fromJson(value);
case 'SuppressionStatsResponseByType':
return SuppressionStatsResponseByType.fromJson(value);
case 'TelemetrySummary':
return TelemetrySummary.fromJson(value);
case 'TelemetrySummaryRates':
return TelemetrySummaryRates.fromJson(value);
case 'TelemetrySummaryTopDomainsInner':
return TelemetrySummaryTopDomainsInner.fromJson(value);
case 'TelemetrySummaryTopReasonsInner':
return TelemetrySummaryTopReasonsInner.fromJson(value);
case 'TelemetrySummaryTotals':
return TelemetrySummaryTotals.fromJson(value);
case 'TestPolicyRequest':
return TestPolicyRequest.fromJson(value);
case 'TestPolicyRequestTestResult':
return TestPolicyRequestTestResult.fromJson(value);
case 'UpdatePolicyRequest':
return UpdatePolicyRequest.fromJson(value);
case 'ValidateRequest':
return ValidateRequest.fromJson(value);
case 'ValidationResponse':
return ValidationResponse.fromJson(value);
case 'ValidationResponseSuppressionMatch':
return ValidationResponseSuppressionMatch.fromJson(value);
case 'ValidationResult':
return ValidationResult.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',);
}