fromJson static method
Returns a new MmOpenGraph instance and imports its values from
value
if it's a Map, null otherwise.
Implementation
// ignore: prefer_constructors_over_static_methods
static MmOpenGraph? fromJson(dynamic value) {
if (value is Map) {
final json = value.cast<String, dynamic>();
// Ensure that the map contains the required keys.
// Note 1: the values aren't checked for validity beyond being non-null.
// Note 2: this code is stripped in release mode!
assert(() {
requiredKeys.forEach((key) {
assert(json.containsKey(key), 'Required key "MmOpenGraph[$key]" is missing from JSON.');
assert(json[key] != null, 'Required key "MmOpenGraph[$key]" has a null value in JSON.');
});
return true;
}());
return MmOpenGraph(
type: mapValueOfType<String>(json, r'type'),
url: mapValueOfType<String>(json, r'url'),
title: mapValueOfType<String>(json, r'title'),
description: mapValueOfType<String>(json, r'description'),
determiner: mapValueOfType<String>(json, r'determiner'),
siteName: mapValueOfType<String>(json, r'site_name'),
locale: mapValueOfType<String>(json, r'locale'),
localesAlternate:
json[r'locales_alternate'] is List ? (json[r'locales_alternate'] as List).cast<String>() : const [],
images: MmOpenGraphImagesInner.listFromJson(json[r'images']) ?? const [],
videos: MmOpenGraphVideosInner.listFromJson(json[r'videos']) ?? const [],
audios: MmOpenGraphAudiosInner.listFromJson(json[r'audios']) ?? const [],
article: MmOpenGraphArticle.fromJson(json[r'article']),
book: MmOpenGraphBook.fromJson(json[r'book']),
profile: MmOpenGraphArticleAuthorsInner.fromJson(json[r'profile']),
);
}
return null;
}