fix: improve JSON parsing in Recipe.fromJson for better type handling
This commit is contained in:
@@ -13,11 +13,23 @@ class Recipe {
|
||||
this.servings,
|
||||
});
|
||||
|
||||
factory Recipe.fromJson(Map<String, dynamic> json) => Recipe(
|
||||
id: json['id'] as int,
|
||||
title: json['title'] as String,
|
||||
description: json['description'] as String?,
|
||||
imageUrl: json['imageUrl'] as String?,
|
||||
servings: json['servings'] as int?,
|
||||
factory Recipe.fromJson(Map<String, dynamic> json) {
|
||||
final dynamic rawId = json['id'];
|
||||
final dynamic rawTitle = json['title'] ?? json['name'];
|
||||
final dynamic rawDescription = json['description'];
|
||||
final dynamic rawImageUrl = json['imageUrl'];
|
||||
final dynamic rawServings = json['servings'];
|
||||
|
||||
return Recipe(
|
||||
id: rawId is num ? rawId.toInt() : int.parse(rawId.toString()),
|
||||
title: (rawTitle ?? '').toString(),
|
||||
description: rawDescription == null ? null : rawDescription.toString(),
|
||||
imageUrl: rawImageUrl == null ? null : rawImageUrl.toString(),
|
||||
servings: rawServings == null
|
||||
? null
|
||||
: (rawServings is num
|
||||
? rawServings.toInt()
|
||||
: int.tryParse(rawServings.toString())),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user