【发布时间】:2021-01-30 04:02:31
【问题描述】:
我有一个无法解决的问题,我正在从 sqflite 数据库中读取数据,而我的 get 方法使用 class.fromJson 方法,但它从不返回任何内容,甚至没有错误。
Future<int> deleteAllDetalleActividadCalificacion() async {
final db = await database;
final res = await db.rawDelete('''DELETE FROM DetallesActividadCalificacion ''');
return res;
}
Future<List<DetalleActividadCalificacion>> getDetalleActividadCalificacion(int proyectoId) async {
final db = await database;
final res = await db.rawQuery('''SELECT * FROM DetallesActividadCalificacion WHERE proyectoId = $proyectoId ''');
print('this is $res');
List<DetalleActividadCalificacion> list =
res.isNotEmpty ? res.map((e) => DetalleActividadCalificacion.fromJson(e)).toList() : [];
print('this is $list');
return list;
}
在第一次打印 (res) 中,我得到以下信息:
[{id: 50, proyectoId: 384, asignaturaId: 1, asignaturaColorPrimario: #018FB1, asignaturaNombre: Español, proyectoTitulo: null, secuenciaActividadId: 403, secuenciaActividadTitulo: w, secuenciaActividadDescripcion: w, fechaRegistro: 2020-08-26, rubricaId: null, instrucciones: null, descripcion: null, calificacionId: 4, calificacionNombre: 8}]
然后第二次打印什么也不返回。 这意味着我的课程可能有问题,但我一遍又一遍地检查它,甚至重写了课程,但什么都没有。
这是我的班级模型。
import 'dart:convert';
List<DetalleActividadCalificacion> DetalleActividadCalificacionModelFromJson(String str) =>
List<DetalleActividadCalificacion>.from(jsonDecode(str).map((x)=> DetalleActividadCalificacion.fromJson(x)));
String DetalleActividadCalificacionModelToJson(List<DetalleActividadCalificacion> data) =>
json.encode(List<dynamic>.from(data.map((e) => e.toJson())));
class DetalleActividadCalificacion {
int id;
int proyectoId;
int asignaturaId;
String asignaturaColorPrimario;
String asignaturaNombre;
String proyectoTitulo;
int secuenciaActividadId;
String secuenciaActividadTitulo;
String secuenciaActividadDescripcion;
String fechaRegistro;
int rubricaId;
String instrucciones;
String descripcion;
int calificacionId;
int calificacionNombre;
DetalleActividadCalificacion({
this.id,
this.proyectoId,
this.asignaturaId,
this.asignaturaColorPrimario,
this.asignaturaNombre,
this.proyectoTitulo,
this.secuenciaActividadId,
this.secuenciaActividadTitulo,
this.secuenciaActividadDescripcion,
this.fechaRegistro,
this.rubricaId,
this.instrucciones,
this.descripcion,
this.calificacionId,
this.calificacionNombre,
});
factory DetalleActividadCalificacion.fromJson(Map<String, dynamic> json) => DetalleActividadCalificacion(
id: json["id"],
proyectoId: json["proyectoId"],
asignaturaId: json["asignaturaId"],
asignaturaColorPrimario: json["asignaturaColorPrimario"],
asignaturaNombre: json["asignaturaNombre"],
proyectoTitulo: json["proyectoTitulo"],
secuenciaActividadId: json["secuenciaActividadId"],
secuenciaActividadTitulo: json["secuenciaActividadTitulo"],
secuenciaActividadDescripcion: json["secuenciaActividadDescripcion"],
fechaRegistro: json["fechaRegistro"],
rubricaId: json["rubricaId"],
instrucciones: json["instrucciones"],
descripcion: json["descripcion"],
calificacionId: json["calificacionId"],
calificacionNombre: json["calificacionNombre"],
);
Map<String, dynamic> toJson() => {
"id": id,
"proyectoId": proyectoId,
"asignaturaId": asignaturaId,
"asignaturaColorPrimario": asignaturaColorPrimario,
"asignaturaNombre": asignaturaNombre,
"proyectoTitulo": proyectoTitulo,
"secuenciaActividadId": secuenciaActividadId,
"secuenciaActividadTitulo": secuenciaActividadTitulo,
"secuenciaActividadDescripcion": secuenciaActividadDescripcion,
"fechaRegistro": fechaRegistro,
"rubricaId": rubricaId,
"instrucciones": instrucciones,
"descripcion": descripcion,
"calificacionId": calificacionId,
"calificacionNombre": calificacionNombre,
};
}
顺便说一句,我的应用周围有很多这样的问题,但没有一个给我这个问题。
【问题讨论】:
-
打印出来了
this is吗? -
我有两个打印件,一个是打印出你看到的 json 的 (res),第二个打印件 (list) 不打印任何东西。
-
如果使用简单的 for 循环而不是 map 会发生什么?
-
我是 Flutter 的新手,一般来说编程,你能给我举个例子吗?
-
我建议您将
try-catch放在res.isNotEmpty ? res.map((e) => DetalleActividadCalificacion.fromJson(e)).toList() : [];之间。由于它不打印第二个打印件,因此该行主要有错误。