fromJson static method

BookInfo fromJson(
  1. Map<String, dynamic> json
)

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,
  );
}