我正在尝试为下面的API response.body创建一个对象类
[
{
"medicationExt":null,
"medicationSNOMED":{
"codigo_snomed":"879978003",
"nombre":"METOPROLOL COMPRIMIDOS 25mg",
"descripcion":"producto que ...",
"codigo_ingredient":"372826007",
"descripcion_ingredient":"metoprolol (sustancia)",
"presentacion":"comprimido",
"volumen":25,
"unidad":"mg"
},
"id_tratamiento":"tratamiento_cr2",
"fecha_registro":"2023-03-15",
"fecha_inicio":"2023-03-15",
"fecha_termino":"",
"estado":"activo",
"frecuenciaDias":1,
"instruccionesTexto":"Tomar 25 mg dos veces al día por vía oral. Tomar el medicamento a intervalos regulares durante el día, preferiblemente con las comidas. No dejar de tomar el medicamento de forma repentina sin consultar al médico.",
"definedHours":true,
"posologia":[
{
"hora_inicio":"08:00:00",
"hora_fin":"09:00:00",
"dosis":1,
"unidad":"comprimido"
},
{
"hora_inicio":"18:00:00",
"hora_fin":"19:00:00",
"dosis":1,
"unidad":"comprimido"
}
]
},
{...},
{...},
]
字符串
这是我提出的对象类。
class Welcome {
final dynamic medicationExt;
final MedicationSNOMED medicationSnomed;
final String idTratamiento;
final DateTime fechaRegistro;
final DateTime fechaInicio;
final String fechaTermino;
final String estado;
final int frecuenciaDias;
final String instruccionesTexto;
final bool definedHours;
final List<Posologia> posologia;
const Welcome({
this.medicationExt,
required this.medicationSnomed,
required this.idTratamiento,
required this.fechaRegistro,
required this.fechaInicio,
required this.fechaTermino,
required this.estado,
required this.frecuenciaDias,
required this.instruccionesTexto,
required this.definedHours,
required this.posologia,
});
factory Welcome.fromJson(Map<String, dynamic> json) {
return Welcome(
medicationExt: json['medicationExt'],
medicationSnomed: json['medicationSNOMED'],
idTratamiento: json['id_tratamiento'],
fechaRegistro: json['fecha_registro'],
fechaInicio: json['fecha_inicio'],
fechaTermino: json['fecha_termino'],
estado: json['estado'],
frecuenciaDias: json['frecuenciaDias'],
instruccionesTexto: json['instruccionesTexto'],
definedHours: json['definedHours'],
posologia: <Posologia>[],
);
}
}
class MedicationSNOMED {
String codigoSnomed;
String nombre;
String descripcion;
String codigoIngredient;
String descripcionIngredient;
String presentacion;
int volumen;
String unidad;
MedicationSNOMED({
required this.codigoSnomed,
required this.nombre,
required this.descripcion,
required this.codigoIngredient,
required this.descripcionIngredient,
required this.presentacion,
required this.volumen,
required this.unidad,
});
factory MedicationSNOMED.fromJson(Map<String, dynamic> json) {
return MedicationSNOMED(
codigoSnomed: json['codigo_snomed'],
nombre: json['nombre'],
descripcion: json['descripcion'],
codigoIngredient: json['codigo_ingredient'],
descripcionIngredient: json['descripcion_ingredient'],
presentacion: json['presentacion'],
volumen: json['volumen'],
unidad: json['unidad'],
);
}
}
class Posologia {
final String horaInicio;
final String horaFin;
final int dosis;
final String unidad;
const Posologia({
required this.horaInicio,
required this.horaFin,
required this.dosis,
required this.unidad,
});
factory Posologia.fromJson(Map<String, dynamic> json) {
return Posologia(
horaInicio: json['hora_inicio'],
horaFin: json['hora_fin'],
dosis: json['dosis'],
unidad: json['unidad'],
);
}
}
型
我的问题主要是“Welcome”类中的medicationSNOMED变量。我如何在不改变类上的“final”和“const”关键字的情况下填充变量?
我不想删除“final”或“const”关键字,因为性能(因为它看起来更酷更漂亮)。
我试过这样的东西
if (response.statusCode == 200) {
List welcomesList = jsonDecode(response.body);
List<Welcome> welcomes = [];
for (int i = 0; i < welcomesList.length; i++) {
Map<String, dynamic> welcomeMap = welcomesList[i];
Map<String, dynamic> medicationSnomed = welcomeMap['medicationSNOMED'];
welcomes[i].medicationSnomed = MedicationSNOMED.fromJson(medicationSnomed);
型
但是我不能访问welcomes[i]中的medicationSnomed变量,因为它是一个final变量。
1条答案
按热度按时间kmbjn2e31#
您可以删除const关键字、final关键字并使medicationSnomed字段可为空,如下所示
字符串