fromJson static method
Implementation
static BookInfo fromJson(Map<String, dynamic> json) {
final publishedDateArray =
((json['publishedDate'] as String?) ?? '0000-00-00').split('-');
final year = int.parse(publishedDateArray[0]);
final month = int.parse(publishedDateArray[1]);
final day = int.parse(publishedDateArray[2]);
final publishedDate = DateTime(year, month, day);
final imageLinks = <String, Uri>{};
final map = json['imageLinks'] as Map<String, dynamic>?;
map?.forEach((key, value) {
imageLinks.addAll({key: Uri.parse(value.toString())});
});
return BookInfo(
title: json['title'],
authors: ((json['authors'] as List<dynamic>?) ?? []).toStringList(),
publisher: json['publisher'],
averageRating: ((json['averageRating'] ?? 0) as num).toDouble(),
categories: ((json['categories'] as List<dynamic>?) ?? []).toStringList(),
contentVersion: json['contentVersion'],
description: json['description'],
language: json['language'],
maturityRating: json['maturityRating'],
pageCount: json['pageCount'] ?? 0,
ratingsCount: json['ratingsCount'] ?? 0,
publishedDate: publishedDate,
imageLinks: imageLinks,
);
}