Help with JSON to convert it to Array

2

I would like to know how I could receive a Dictionary and turn it into an Arrangement of type Classes. The dictionary is received in Json and I download it with alamofire. What I would need help with is to create the function that converts me to a vector.

import UIKit

enum DiasClases {
    case Lunes
    case Martes
    case Miercoles
    case Jueves
    case Viernes
    case Sabado

    static func allValues() -> [DiasClases] {
        return [Lunes, Martes, Miercoles, Jueves, Viernes, Sabado]
    }
}

struct Clases {
    let id: Int
    let dia: DiasClases
    let horario: String
    let materia: String
    let profesor: String
    let seccion: String
}

func fromDictionary( dictionary: NSDictionary) -> [DiasClases] 
{
    var Clases = [DiasClases]()
    let list = dictionary["Horario"] as? NSArray

    for (IndexSet, value) in Clases.enumerated() {
        Clases.append(Clases)
    }
}
    
asked by Silvio Colman 03.04.2017 в 04:06
source

1 answer

0

Assuming that your JSON is similar to this:

{
  "Horario": [{
      "id": 1234,
      "dia": 1,
      "horario": "16:30-18:30",
      "materia": "Matemáticas",
      "profesor": "Fulanito",
      "sección": "1A"
  }, {
      "id": 1235,
      "dia": 2,
      "horario": "16:30-18:30",
      "materia": "Filosofía",
      "profesor": "Pepito",
      "sección": "1B"
  }]
}

enum DiasClases: Int {
  case Lunes = 1
  case Martes = 2
  case Miercoles = 3
  case Jueves = 4
  case Viernes = 5
  case Sabado = 6

  static func allValues() -> [DiasClases] {
      return [Lunes, Martes, Miercoles, Jueves, Viernes, Sabado]
  }
}


func fromDictionary(dictionary: [String: AnyObject]) -> [Clases]
{
    var clases = [Clases]()
    let list = dictionary["Horario"] as? [[String: AnyObject]]

    list?.forEach({ (listItem) in
        let dia = listItem["dia"] as? Int ?? 0
        let clase = Clases(id: listItem["id"] as? Int ?? 0,
                           dia: DiasClases(rawValue: dia),
                           horario: listItem["horario"] as? String ?? "",
                           materia: listItem["materia"] as? String ?? "",
                           profesor: listItem["profesor"] as? String ?? "",
                           seccion: listItem["seccion"] as? String ?? "")
        clases.append(clase)
    })
    return clases
}
    
answered by 04.04.2017 / 08:54
source