![](/img/trans.png)
[英]Flutter: Unhandled Exception: Converting object to an encodable object failed: Instance of 'AddProjectModel'
[英]how to solve Unhandled Exception: Converting object to an encodable object failed?
我創建了 2 個類,第一個是:
class Mesure {
late String equipement;
late String number;
late String courant = "";
Mesure.init(List<String> values) {
equipement = values[0];
number = values[1];
courant = values[2];
}
}
和數據庫類:
class DataBase {
late int? id;
late Mesure? mesure;
late String? status;
DataBase.init(int id, Mesure mesure, String status) {
id = id;
mesure = mesure;
status = status;
}
}
現在我用一些值初始化了數據庫:
Mesure mesure = Mesure.init(values);
DataBase test = DataBase.init(0, mesure, "status");
我想將它存儲在存儲 getX 中:
final box = GetStorage();
box.write('data', test);
但它不起作用並引發異常:
E/flutter (19759): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] 未處理異常:將對象轉換為可編碼對象失敗:“數據庫”實例
get_storage
包使用json.encode
和json.decode
來保存和加載文件中的數據。 並且json.encode
/ json.decode
文檔說,如果分別實現了toJson
和fromJson
函數,它只能序列化/反序列化類。
因此,代碼將如下所示:
class Mesure {
late String equipement;
late String number;
late String courant = "";
Mesure.init(List<String> values) {
equipement = values[0];
number = values[1];
courant = values[2];
}
Mesure.fromJson(Map<String, dynamic> json)
: equipement = json['equipement'],
number = json['number'],
courant = json['courant'];
Map<String, dynamic> toJson() {
return {
'equipement': equipement,
'number': number,
'courant': courant,
};
}
}
class DataBase {
final int id;
final Mesure mesure;
final String status;
DataBase.init(this.id, this.mesure, this.status);
DataBase.fromJson(Map<String, dynamic> json)
: id = json['id'],
mesure = Mesure.fromJson(json['mesure']),
status = json['status'];
Map<String, dynamic> toJson() {
return {
'id': id,
'mesure': mesure.toJson(),
'status': status,
};
}
}
請試試這個
class DataBase {
int? id;
Mesure? mesure;
String? status;
DataBase(this.id, this.mesure, this.status);
}
然后使用
Mesure mesure = Mesure.init(values);
DataBase test = DataBase(id:0, mesure : mesure, status:"status");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.