由于 API 的 http 回應回傳一個 Map<String, dynamic>,我們可以直接在我們的小部件中使用它。但這是正確的方法嗎?還是我們必須使用 Model.fromJson() 方法將此 Map 轉換為專用模型?更準確地說,讓我們簡單地給出類似偽的代碼示例:
第一種方式:
class example{
List<Map<String, dynamic>> list;
.
.
.
readApi(){
list = jsonDecode('apiResponseJsonString') //returns a List<Map<String, dynamic>>;
}
.
.
.
child: Text(obj[0]['Title'])
}
第二種方式:
class CustomModel{
String title;
CustomModel.fromJson(Map<String, dynamic> json){
return CustomModel(title: json['Title'] as String);
}
}
class example{
List<CustomModel> list;
.
.
.
readApi(){
final parsed = jsonDecode(responseBody).cast<Map<String, dynamic>>();
return parsed.map<CustomModel>((json) => CustomModel.fromJson(json)).toList();
}
.
.
.
child: Text(list[0].title)
}
哪種方式使用起來更快更安全?
謝謝
uj5u.com熱心網友回復:
第二種方式使用起來肯定更安全。這是因為您的代碼將是型別安全的,并且您將能夠使用所有很酷的語言功能,例如自動完成功能。然而,第一種方式可能會快幾毫秒,但絕對不值得,因為它可以比那幾毫秒節省更多的開發時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/408533.html
標籤:
下一篇:API加載失敗
