[英]How to handle a null value in Flutter Model Factory
我有一個需要解析並返回到FutureBuilder
的 json。 我遇到的問題出在這一行: final meta = jsonDecode(parsedJson!['metadata']);
有時metadata
為 null 並拋出此錯誤Unhandled Exception: type 'Null' is not a subtype of type 'String'
。 處理它的最佳方法是什么?
元數據包含我想在網格中使用的圖像 url。 因此,如果可能,應使用默認圖像 url 創建默認元數據對象。
class Data {
final int total;
final MetaData metadata;
Data({
required this.total,
required this.metadata,
});
factory Data.fromJson(parsedJson) {
final meta = jsonDecode(parsedJson!['metadata']);
MetaData md = MetaData.fromJson(meta);
return Data(
total: parsedJson['total'] ?? 0,
metadata: md,
);
}
}
class MetaData {
final String image;
MetaData({
required this.image,
});
factory MetaData.fromJson(Map<String?, dynamic> json) {
return MetaData(
image: json['image'] ?? "",
);
}
}
*** 編輯我的解決方案
我決定做這樣的事情。 我將根據需要填充對象字符串。 這樣可以嗎?
factory Data.fromJson(parsedJson) {
var metadataString = parsedJson['metadata'];
metadataString ??=
"{\"image\":\"https://somewebsite.com/1.png\"}";
var meta = jsonDecode(metadataString);
MetaData md = MetaData.fromJson(meta);
return Data(
total: parsedJson['total'] ?? 0,
metadata: md,
);
}
您需要檢查您的元數據是否為空。 並按照此代碼段
metadata = json['metadata'] != null
? Metadata.fromJson(json['metadata'])
: null;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.