[英]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.