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 'ActionDTOInternal':
return ActionDTOInternal.fromJson(value);
case 'ActionFeedbackDTOInternal':
return ActionFeedbackDTOInternal.fromJson(value);
case 'AppApiStatusDTO':
return AppApiStatusDTO.fromJson(value);
case 'ChangeDTO':
return ChangeDTO.fromJson(value);
case 'ChangeParameterDTO':
return ChangeParameterDTO.fromJson(value);
case 'ChangeStateDTO':
return ChangeStateDTO.fromJson(value);
case 'ChangeSubjectDTO':
return ChangeSubjectDTO.fromJson(value);
case 'ChecklistItemMobileDTO':
return ChecklistItemMobileDTO.fromJson(value);
case 'ChecklistItemMobileDTOInternal':
return ChecklistItemMobileDTOInternal.fromJson(value);
case 'EventMetadata':
return EventMetadata.fromJson(value);
case 'FileDTO':
return FileDTO.fromJson(value);
case 'FileTransferDTO':
return FileTransferDTO.fromJson(value);
case 'FileTransferDTOInternal':
return FileTransferDTOInternal.fromJson(value);
case 'FilterParam':
return FilterParamTypeTransformer().decode(value);
case 'HistoryEventDTO':
return HistoryEventDTO.fromJson(value);
case 'HomeAccountObjectDTO':
return HomeAccountObjectDTO.fromJson(value);
case 'HomeAccountObjectItemDTO':
return HomeAccountObjectItemDTO.fromJson(value);
case 'HomeAccountOptionsDTO':
return HomeAccountOptionsDTO.fromJson(value);
case 'MemberNotificationOverrideDTO':
return MemberNotificationOverrideDTO.fromJson(value);
case 'MobileAddCommentDTO':
return MobileAddCommentDTO.fromJson(value);
case 'MobileEditCommentDTO':
return MobileEditCommentDTO.fromJson(value);
case 'NotificationSettingsDTO':
return NotificationSettingsDTO.fromJson(value);
case 'ReactionResultDTO':
return ReactionResultDTO.fromJson(value);
case 'RelatedEntityDTO':
return RelatedEntityDTO.fromJson(value);
case 'TicketAttachmentDTOInternal':
return TicketAttachmentDTOInternal.fromJson(value);
case 'TicketCategoryDTO':
return TicketCategoryDTO.fromJson(value);
case 'TicketLifecycleMobileDTO':
return TicketLifecycleMobileDTO.fromJson(value);
case 'TicketListMobileDTO':
return TicketListMobileDTO.fromJson(value);
case 'TicketMemberAccountDTO':
return TicketMemberAccountDTO.fromJson(value);
case 'TicketMemberAddDTO':
return TicketMemberAddDTO.fromJson(value);
case 'TicketMemberContactDTO':
return TicketMemberContactDTO.fromJson(value);
case 'TicketMemberContactDTOInternal':
return TicketMemberContactDTOInternal.fromJson(value);
case 'TicketMemberMobileDTO':
return TicketMemberMobileDTO.fromJson(value);
case 'TicketMobileBaseDTO':
return TicketMobileBaseDTO.fromJson(value);
case 'TicketMobileBaseDTOInternal':
return TicketMobileBaseDTOInternal.fromJson(value);
case 'TicketMobileCommentDTO':
return TicketMobileCommentDTO.fromJson(value);
case 'TicketMobileDTOInternal':
return TicketMobileDTOInternal.fromJson(value);
case 'TicketMobileWithLastCommentDTO':
return TicketMobileWithLastCommentDTO.fromJson(value);
case 'TicketRelatedDTO':
return TicketRelatedDTO.fromJson(value);
case 'TicketRelatedDTOInternal':
return TicketRelatedDTOInternal.fromJson(value);
case 'TicketSaveMobileDTOInternal':
return TicketSaveMobileDTOInternal.fromJson(value);
case 'TicketStatisticsDTO':
return TicketStatisticsDTO.fromJson(value);
case 'UserNotificationPreferenceDTO':
return UserNotificationPreferenceDTO.fromJson(value);
case 'ValidationErrorDTO':
return ValidationErrorDTO.fromJson(value);
case 'ValidationErrorsDTO':
return ValidationErrorsDTO.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',);
}