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 'Alert':
        return Alert.fromJson(value);
      case 'Apikey':
        return Apikey.fromJson(value);
      case 'Asset':
        return Asset.fromJson(value);
      case 'Assetpricehistory':
        return Assetpricehistory.fromJson(value);
      case 'Cloudprovider':
        return Cloudprovider.fromJson(value);
      case 'CompaniesCompanyIdApiKeysGet200Response':
        return CompaniesCompanyIdApiKeysGet200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdDelete200Response':
        return CompaniesCompanyIdAssetsAssetIdDelete200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdDelete200ResponseData':
        return CompaniesCompanyIdAssetsAssetIdDelete200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdGet200Response':
        return CompaniesCompanyIdAssetsAssetIdGet200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdPatch200Response':
        return CompaniesCompanyIdAssetsAssetIdPatch200Response.fromJson(value);
      case 'CompaniesCompanyIdAssetsAssetIdPatch200ResponseData':
        return CompaniesCompanyIdAssetsAssetIdPatch200ResponseData.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 '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 'CompaniesCompanyIdUsersUserIdAlertsAlertIdGet200Response':
        return CompaniesCompanyIdUsersUserIdAlertsAlertIdGet200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdAlertsAlertIdPatch200Response':
        return CompaniesCompanyIdUsersUserIdAlertsAlertIdPatch200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdAlertsAlertIdPatch200ResponseData':
        return CompaniesCompanyIdUsersUserIdAlertsAlertIdPatch200ResponseData.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 'CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdDelete200Response':
        return CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdDelete200Response.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdDelete200ResponseData':
        return CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdDelete200ResponseData.fromJson(value);
      case 'CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdGet200Response':
        return CompaniesCompanyIdUsersUserIdFavoritesFavoriteIdGet200Response.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 'Company':
        return Company.fromJson(value);
      case 'Connection':
        return Connection.fromJson(value);
      case 'Error':
        return Error.fromJson(value);
      case 'Favorite':
        return Favorite.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 'MeGet200Response':
        return MeGet200Response.fromJson(value);
      case 'MeGet200ResponseApiKeyInfo':
        return MeGet200ResponseApiKeyInfo.fromJson(value);
      case 'MeGet200ResponseProfile':
        return MeGet200ResponseProfile.fromJson(value);
      case 'MeGet200ResponseTokenMetadata':
        return MeGet200ResponseTokenMetadata.fromJson(value);
      case 'User':
        return User.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',);
}