[英]Unhandled Exception: Converting object to an encodable object failed: Instance of 'Product'
[英]Unhandled Exception: Converting object to an encodable object failed: Instance of 'Mesure'
你好,我有 class 測量,當我讀取數據時,我使用它作為 model 然后我將它保存在我的數據庫getstorage getX中。 它工作得很好,但是當我添加這個測試 if mode = display 我將在我的 model 上添加更多數據並進行映射。 我收到這個錯誤。 如果它不可用,是否可以跳過“debut”和“fin”?
未處理的異常:將 object 轉換為可編碼的 object 失敗:“Mesure”實例如何修復它
class Mesure {
late int id;
String status;
late String mode;
late String equipementNumero;
late String temperature;
late String courant = "";
late String debut;
late String fin = "";
Mesure.init(List<String> values, this.id, this.status) {
mode = values[0];
equipementNumero = values[1];
temperature = values[2];
courant = values[3];
if (mode == "display") {
debut = values[4];
fin = values[5];
}
}
Mesure.fromJson(Map<String, dynamic> json)
: id = json['id'],
status = json['status'],
mode = json['mode'],
temperature = json['temperature'],
equipementNumero = json['equipementNumero'],
courant = json['courant'],
debut = json['debut'],
fin = json['fin'];
Map<String, dynamic> toJson() {
if (mode == "display") {
return {
'id': id,
'status': status,
'mode': mode,
'temperature': temperature,
'equipementNumero': equipementNumero,
'courant': courant,
};
} else {
return {
'id': id,
'status': status,
'mode': mode,
'temperature': temperature,
'equipementNumero': equipementNumero,
'courant': courant,
'debut': debut,
'fin': fin,
};
}
}
}
有兩件事:
debut
以使其寫入 JSON ( get_storage );debut
和fin
的值默認為某個值; 所以,整個 class Mesure
看起來像這樣:
class Mesure {
late int id;
String status;
late String mode;
late String equipementNumero;
late String temperature;
late String courant;
late String debut = "";
late String fin = "";
Mesure.init(List<String> values, this.id, this.status) {
mode = values[0];
equipementNumero = values[1];
temperature = values[2];
courant = values[3];
if (mode == "display") {
debut = values[4];
fin = values[5];
}
}
Mesure.fromJson(Map<String, dynamic> json)
: id = json['id'],
status = json['status'],
mode = json['mode'],
temperature = json['temperature'],
equipementNumero = json['equipementNumero'],
courant = json['courant'],
debut = json['debut'] ?? '',
fin = json['fin'] ?? '';
Map<String, dynamic> toJson() {
if (mode == "display") {
return {
'id': id,
'status': status,
'mode': mode,
'temperature': temperature,
'equipementNumero': equipementNumero,
'courant': courant,
};
} else {
return {
'id': id,
'status': status,
'mode': mode,
'temperature': temperature,
'equipementNumero': equipementNumero,
'courant': courant,
'debut': debut,
'fin': fin,
};
}
}
}
此外,構造函數中的代碼在toJson
中看起來是倒置的。 在構造函數中不應該像這樣mode = "display"
而不是mode == "display"
:
Mesure.init(List<String> values, this.id, this.status) {
mode = values[0];
equipementNumero = values[1];
temperature = values[2];
courant = values[3];
if (mode != "display") {
debut = values[4];
fin = values[5];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.