fromJson static method

dynamic fromJson(
  1. dynamic value,
  2. String targetType, {
  3. bool growable = false,
})

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 'Alerts':
        return Alerts.fromJson(value);
      case 'AlertsInput':
        return AlertsInput.fromJson(value);
      case 'AlertsUpdate':
        return AlertsUpdate.fromJson(value);
      case 'AnalyzeCompanyHandleAssetsAssetSlugGet200Response':
        return AnalyzeCompanyHandleAssetsAssetSlugGet200Response.fromJson(value);
      case 'ApiKeys':
        return ApiKeys.fromJson(value);
      case 'ApiKeysInput':
        return ApiKeysInput.fromJson(value);
      case 'ApiKeysUpdate':
        return ApiKeysUpdate.fromJson(value);
      case 'AssetPriceHistory':
        return AssetPriceHistory.fromJson(value);
      case 'AssetPriceHistoryInput':
        return AssetPriceHistoryInput.fromJson(value);
      case 'AssetPriceHistoryUpdate':
        return AssetPriceHistoryUpdate.fromJson(value);
      case 'Assets':
        return Assets.fromJson(value);
      case 'AssetsInput':
        return AssetsInput.fromJson(value);
      case 'AssetsUpdate':
        return AssetsUpdate.fromJson(value);
      case 'CloudProviders':
        return CloudProviders.fromJson(value);
      case 'CloudProvidersGet200Response':
        return CloudProvidersGet200Response.fromJson(value);
      case 'CloudProvidersInput':
        return CloudProvidersInput.fromJson(value);
      case 'CloudProvidersProviderIdGet200Response':
        return CloudProvidersProviderIdGet200Response.fromJson(value);
      case 'CloudProvidersProviderIdStorageEnginesGet200Response':
        return CloudProvidersProviderIdStorageEnginesGet200Response.fromJson(value);
      case 'CloudProvidersUpdate':
        return CloudProvidersUpdate.fromJson(value);
      case 'Companies':
        return Companies.fromJson(value);
      case 'CompaniesCompanyIdAnalyticsAssetsGet200Response':
        return CompaniesCompanyIdAnalyticsAssetsGet200Response.fromJson(value);
      case 'CompaniesCompanyIdApiKeysApiKeyIdDelete200Response':
        return CompaniesCompanyIdApiKeysApiKeyIdDelete200Response.fromJson(value);
      case 'CompaniesCompanyIdApiKeysApiKeyIdDelete200ResponseData':
        return CompaniesCompanyIdApiKeysApiKeyIdDelete200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdApiKeysApiKeyIdGet200Response':
        return CompaniesCompanyIdApiKeysApiKeyIdGet200Response.fromJson(value);
      case 'CompaniesCompanyIdApiKeysApiKeyIdPatch200Response':
        return CompaniesCompanyIdApiKeysApiKeyIdPatch200Response.fromJson(value);
      case 'CompaniesCompanyIdApiKeysApiKeyIdPatch200ResponseData':
        return CompaniesCompanyIdApiKeysApiKeyIdPatch200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdApiKeysGet200Response':
        return CompaniesCompanyIdApiKeysGet200Response.fromJson(value);
      case 'CompaniesCompanyIdApiKeysPost200Response':
        return CompaniesCompanyIdApiKeysPost200Response.fromJson(value);
      case 'CompaniesCompanyIdApiKeysPost200ResponseData':
        return CompaniesCompanyIdApiKeysPost200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdDelete200Response':
        return CompaniesCompanyIdAssetsAssetIdDelete200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdDelete200ResponseData':
        return CompaniesCompanyIdAssetsAssetIdDelete200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdPatch200Response':
        return CompaniesCompanyIdAssetsAssetIdPatch200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdPatch200ResponseData':
        return CompaniesCompanyIdAssetsAssetIdPatch200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdPricesAphIdDelete200Response':
        return CompaniesCompanyIdAssetsAssetIdPricesAphIdDelete200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdPricesAphIdDelete200ResponseData':
        return CompaniesCompanyIdAssetsAssetIdPricesAphIdDelete200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdPricesAphIdGet200Response':
        return CompaniesCompanyIdAssetsAssetIdPricesAphIdGet200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdPricesAphIdPatch200Response':
        return CompaniesCompanyIdAssetsAssetIdPricesAphIdPatch200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdPricesAphIdPatch200ResponseData':
        return CompaniesCompanyIdAssetsAssetIdPricesAphIdPatch200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdPricesGet200Response':
        return CompaniesCompanyIdAssetsAssetIdPricesGet200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdPricesPost200Response':
        return CompaniesCompanyIdAssetsAssetIdPricesPost200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdPricesPost200ResponseData':
        return CompaniesCompanyIdAssetsAssetIdPricesPost200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdAssetsGet200Response':
        return CompaniesCompanyIdAssetsGet200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsPost200Response':
        return CompaniesCompanyIdAssetsPost200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsPost200ResponseData':
        return CompaniesCompanyIdAssetsPost200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdConnectionsConnectionIdDelete200Response':
        return CompaniesCompanyIdConnectionsConnectionIdDelete200Response.fromJson(value);
      case 'CompaniesCompanyIdConnectionsConnectionIdDelete200ResponseData':
        return CompaniesCompanyIdConnectionsConnectionIdDelete200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdConnectionsConnectionIdGet200Response':
        return CompaniesCompanyIdConnectionsConnectionIdGet200Response.fromJson(value);
      case 'CompaniesCompanyIdConnectionsConnectionIdPatch200Response':
        return CompaniesCompanyIdConnectionsConnectionIdPatch200Response.fromJson(value);
      case 'CompaniesCompanyIdConnectionsConnectionIdPatch200ResponseData':
        return CompaniesCompanyIdConnectionsConnectionIdPatch200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdConnectionsGet200Response':
        return CompaniesCompanyIdConnectionsGet200Response.fromJson(value);
      case 'CompaniesCompanyIdConnectionsPost200Response':
        return CompaniesCompanyIdConnectionsPost200Response.fromJson(value);
      case 'CompaniesCompanyIdConnectionsPost200ResponseData':
        return CompaniesCompanyIdConnectionsPost200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdGet200Response':
        return CompaniesCompanyIdGet200Response.fromJson(value);
      case 'CompaniesCompanyIdPatch200Response':
        return CompaniesCompanyIdPatch200Response.fromJson(value);
      case 'CompaniesCompanyIdPatch200ResponseData':
        return CompaniesCompanyIdPatch200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdUsersGet200Response':
        return CompaniesCompanyIdUsersGet200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersPost200Response':
        return CompaniesCompanyIdUsersPost200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersPost200ResponseData':
        return CompaniesCompanyIdUsersPost200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdAlertsAlertIdDelete200Response':
        return CompaniesCompanyIdUsersUserIdAlertsAlertIdDelete200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdAlertsAlertIdDelete200ResponseData':
        return CompaniesCompanyIdUsersUserIdAlertsAlertIdDelete200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdAlertsAlertIdPatch200Response':
        return CompaniesCompanyIdUsersUserIdAlertsAlertIdPatch200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdAlertsAlertIdPatch200ResponseData':
        return CompaniesCompanyIdUsersUserIdAlertsAlertIdPatch200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdAlertsAssetAssetIdGet200Response':
        return CompaniesCompanyIdUsersUserIdAlertsAssetAssetIdGet200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdAlertsGet200Response':
        return CompaniesCompanyIdUsersUserIdAlertsGet200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdAlertsPost200Response':
        return CompaniesCompanyIdUsersUserIdAlertsPost200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdAlertsPost200ResponseData':
        return CompaniesCompanyIdUsersUserIdAlertsPost200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdDelete200Response':
        return CompaniesCompanyIdUsersUserIdDelete200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdDelete200ResponseData':
        return CompaniesCompanyIdUsersUserIdDelete200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdFavoritesCategoryCategoryGet200Response':
        return CompaniesCompanyIdUsersUserIdFavoritesCategoryCategoryGet200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdDelete200Response':
        return CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdDelete200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdDelete200ResponseData':
        return CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdDelete200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdPatch200Response':
        return CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdPatch200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdPatch200ResponseData':
        return CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdPatch200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdFavoritesGet200Response':
        return CompaniesCompanyIdUsersUserIdFavoritesGet200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdFavoritesPost200Response':
        return CompaniesCompanyIdUsersUserIdFavoritesPost200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdFavoritesPost200ResponseData':
        return CompaniesCompanyIdUsersUserIdFavoritesPost200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdGet200Response':
        return CompaniesCompanyIdUsersUserIdGet200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdPatch200Response':
        return CompaniesCompanyIdUsersUserIdPatch200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdPatch200ResponseData':
        return CompaniesCompanyIdUsersUserIdPatch200ResponseData.fromJson(value);
      case 'CompaniesInput':
        return CompaniesInput.fromJson(value);
      case 'CompaniesUpdate':
        return CompaniesUpdate.fromJson(value);
      case 'Connections':
        return Connections.fromJson(value);
      case 'ConnectionsInput':
        return ConnectionsInput.fromJson(value);
      case 'ConnectionsUpdate':
        return ConnectionsUpdate.fromJson(value);
      case 'Error':
        return Error.fromJson(value);
      case 'Favorites':
        return Favorites.fromJson(value);
      case 'FavoritesInput':
        return FavoritesInput.fromJson(value);
      case 'FavoritesUpdate':
        return FavoritesUpdate.fromJson(value);
      case 'InlineObject':
        return InlineObject.fromJson(value);
      case 'InlineObject1':
        return InlineObject1.fromJson(value);
      case 'InlineObject2':
        return InlineObject2.fromJson(value);
      case 'InlineObject3':
        return InlineObject3.fromJson(value);
      case 'JobFunctions':
        return JobFunctions.fromJson(value);
      case 'JobFunctionsFunctionIdGet200Response':
        return JobFunctionsFunctionIdGet200Response.fromJson(value);
      case 'JobFunctionsGet200Response':
        return JobFunctionsGet200Response.fromJson(value);
      case 'JobFunctionsInput':
        return JobFunctionsInput.fromJson(value);
      case 'JobFunctionsUpdate':
        return JobFunctionsUpdate.fromJson(value);
      case 'Users':
        return Users.fromJson(value);
      case 'UsersInput':
        return UsersInput.fromJson(value);
      case 'UsersUpdate':
        return UsersUpdate.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',);
}