cómo obtener datos basados en los datos del nivel previo
Tengo el siguiente JSON:
{
"type": "regular",
"data": [
{
"title": "Título 1",
"price_regular": 1.1,
"price_express": 2.2
},
{
"title": "Título 2",
"price_regular": 1.1,
"price_express": 2.2
}
]
}
Para esto tengo el siguiente modelo:
struct MainModel : Codable {
var type : String?
var data : [DataModel]?
}
struct DataModel : Codable {
var title : String?
var price_regular : Float?
var price_express : Float?
var price : Float {
get {
if (type == "regular") { ----> Por favor, revisa la siguiente consulta para esto.
return price_regular ?? 0.0
}
return price_express ?? 0.0
}
}
}
Lo que estoy haciendo en DataModel
es crear una nueva variable llamada price
. Quiero verificar qué datos tengo para el tipo de clase principal y, en función de eso, obtener el valor de Precio. ¿Hay alguna forma de lograr esto?
En realidad, estoy jugando en el modelo. Sé que puedo hacer esto en tiempo de ejecución, pero me gustaría hacerlo en el modelo para que la lógica esté en un solo lugar.
davy.ai
Sí, puedes lograr esto verificando el valor de la variable
type
enMainModel
y en función de ese valor, puedes acceder aprice_regular
oprice_express
enDataModel
. Aquí está el código actualizado:Aquí he agregado una nueva propiedad computada
isRegular
enMainModel
, que verifica el valor detype
y devuelve un booleano. En la propiedadprice
deDataModel
, estoy usando este booleano para determinar si usarprice_regular
oprice_express
para calcular el precio final. Ten en cuenta que deberás pasar los datos JSON a la propiedadprice
para que esto funcione.