GiphyMedia.fromJson constructor
Creates a GiphyMedia instance from a JSON object.
json A map containing key-value pairs corresponding to the media attributes.
Returns a GiphyMedia instance populated with the values from the JSON object.
Implementation
factory GiphyMedia.fromJson(Map<Object?, Object?> json) => GiphyMedia(
id: json['id'] as String,
type: json['type'] != null
? GiphyMediaTypeExtension.fromStringValue(json['type'] as String)
: null,
slug: json['slug'] as String?,
url: json['url'] as String?,
bitlyGifUrl: json['bitlyGifUrl'] as String?,
bitlyUrl: json['bitlyUrl'] as String?,
embedUrl: json['embedUrl'] as String?,
source: json['source'] as String?,
title: json['title'] as String?,
rating: json['rating'] != null
? GiphyRatingExtension.fromStringValue(json['rating'] as String)
: null,
contentUrl: json['contentUrl'] as String?,
tags: json['tags'] != null
? List<String>.from(json['tags'] as List)
: null,
featuredTags: json['featuredTags'] != null
? List<String>.from(json['featuredTags'] as List)
: null,
user: json['user'] != null
? GiphyUser.fromJson(json['user'] as Map<Object?, Object?>)
: null,
images: GiphyImages.fromJson(json['images'] as Map<Object?, Object?>),
video: json['video'] != null
? GiphyVideo.fromJson(json['video'] as Map<Object?, Object?>)
: null,
analyticsResponsePayload: json['analyticsResponsePayload'] as String?,
sourceTld: json['sourceTld'] as String?,
sourcePostUrl: json['sourcePostUrl'] as String?,
updateDate: json['updateDate'] != null
? DateTime.parse(json['updateDate'] as String)
: null,
createDate: json['createDate'] != null
? DateTime.parse(json['createDate'] as String)
: null,
importDate: json['importDate'] != null
? DateTime.parse(json['importDate'] as String)
: null,
trendingDate: json['trendingDate'] != null
? DateTime.parse(json['trendingDate'] as String)
: null,
isHidden: json['isHidden'] as bool? ?? false,
isRemoved: json['isRemoved'] as bool? ?? false,
isCommunity: json['isCommunity'] as bool? ?? false,
isAnonymous: json['isAnonymous'] as bool? ?? false,
isFeatured: json['isFeatured'] as bool? ?? false,
isRealtime: json['isRealtime'] as bool? ?? false,
isIndexable: json['isIndexable'] as bool? ?? false,
isSticker: json['isSticker'] as bool? ?? false,
isDynamic: json['isDynamic'] as bool? ?? false,
isVideo: json['isVideo'] as bool? ?? false,
animatedTextStyle: json['animatedTextStyle'] as String?,
hasAttributions: json['hasAttributions'] as bool? ?? false,
altText: json['altText'] as String?,
variation: json['variation'] as String?,
variationCount: json['variationCount'] as int?,
aspectRatio: json['aspectRatio'] as double? ?? 1.0,
userDictionary: json['userDictionary'] != null
? Map<String, String>.fromEntries(
(json['userDictionary'] as Map).entries.map(
(e) => MapEntry(e.key as String, e.value.toString()),
),
)
: {},
);