Saltearse al contenido

Clase modelo

En este proyecto, todos los modelos de datos seguirán una estructura similar, con el fin de mantener el orden, facilitar su utilización y garantizar la consistencia.

Ejemplo

model.dart
class NombreDelModelo {
// Propiedades del modelo
TipoDeDato? propiedadA; // Propiedad que puede ser nula.
TipoDeDato propiedadB; // Propiedad obligatoria.
TipoDeDato propiedadC; // Propiedad obligatoria.
// Constructor del modelo
NombreDelModelo({
this.propiedadA, // Se asigna opcionalmente (puede ser nula).
required this.propiedadB, // Es requerida al crear una instancia de la clase.
required this.propiedadC, // Es requerida al crear una instancia de la clase.
});
// Método para crear una instancia del modelo a partir de un JSON
factory NombreDelModelo.fromJson(Map<String, dynamic> json) {
// Se crea y retorna la instancia del modelo usando los datos del JSON.
return NombreDelModelo(
// Asignaciones del valor a partir del JSON.
propiedadA: json['propiedadA'],
propiedadB: json['propiedadB'],
propiedadC: json['propiedadC'],
);
}
// Método para convertir el modelo a un objeto JSON
Map<String, dynamic> toJson() {
// Crea un mapa para almacenar los datos en formato clave-valor.
final Map<String, dynamic> data = <String, dynamic>{};
data['propiedadA'] = propiedadA;
data['propiedadB'] = propiedadB;
data['propiedadC'] = propiedadC;
// Retorna el mapa que representa el objeto en formato JSON.
return data;
}
}

Propiedades

Los modelos consisten en un conjunto de propiedades con un tipo de dato predeterminado que representan los datos almacenados en ellos. Estas propiedades se declaran como variables inmutables mediante la palabra clave final, lo que implica que, una vez que se les asigna un valor, este no puede modificarse.

Constructor

Los modelos tienen un constructor que permitirá crear instancias utilizando los datos proporcionados. Las propiedades obligatorias serán antecedidas por la palabra clave required, asegurando que al instanciar el modelo se proporcione un valor para dichas propiedades.

Método factory fromJson

Para convertir datos en formato JSON a instancias del modelo, se emplea un método factory llamado usualmente fromJson, este método recibe un mapa: Map<String, dynamic> como parámetro. A partir de esta información, el método crea y devuelve una instancia del modelo, asignando los valores adecuados a sus propiedades.

Método toJson

Para transformar una instancia del modelo nuevamente a formato JSON, se emplea el método toJson. Este método crea y devuelve un mapa de tipo Map<String, dynamic> que contiene las propiedades de la instancia representadas en formato JSON.