Не обработанное исключение: тип 'Null' не является подтипом типа 'int' при приведении типа
factory Account.fromJson(Map<String, dynamic> json) {
return Account(
json["id"],
json["email"],
json["description"],
json["first_name"],
json["last_name"],
json["phone"],
json["username"],
json["image"],
json["email_confirmed"],
json["reviews_media"] != null
? double.parse(json["reviews_media"])
: (json["reviews_media"] as int).toDouble(),
json["holiday_mode"],
json["identity_code"],
json["residency_city"],
json["birthday"] != null
? DateFormat("yyyy-MM-dd").parse(json["birthday"])
: null);
}
Проблема здесь :
json["reviews_media"] != null
? double.parse(json["reviews_media"])
: (json["reviews_media"] as int).toDouble(),
Если json["reviews_media"]
является NOT null
, вы разбираете его как double
, что является файлом, но другая часть условия неверна. Вы знаете, что правильной частью является null
, но не можете привести ее к int
. Вы должны привести условие null
по умолчанию к чему-то вроде этого :
json["reviews_media"] != null
? double.parse(json["reviews_media"])
: 0.0,
Решение: Замена int на int? (если сделать поля необязательными, это решит проблему).