Como mapear JSON en Swift con Codable .

Rafael Asencio
2 min readJan 13, 2021

--

A partir de Swift 4, se introdujo el protocolo Codable. Este protocolo está compuesto por dos protocolos (Decodable, Encodable) que nos permite respectivamente decodificar o codificar un objeto.

Por otro lado, la clase JSONEncoder nos da la funcionalidad para transformar el formato JSON, en un contenedor (clave,valor), con la ayuda de Codable. Veamos cómo hacerlo.

Partiendo del siguiente JSON obtenido a través del siguiente enlace https://jsonplaceholder.typicode.com/users .

Creamos una estructura llamada User a la que implementamos el protocolo Codable. La estructura User contendrá una serie de propiedades relativas al JSON.

Para el caso tomaremos tres simples variables. Es importante que las variables declaradas en la estructura tengan el mismo nombre y tipo que los datos del JSON. Si queremos usar distintos nombres de variables podemos implementar el protocolo CodingKeys como se muestra en la segunda imagen.

En el último paso, creamos una tarea llamando al método asíncrono dataTask de la clase URLSession, al cual le pasamos la url anterior y nos devuelve un callback con los datos de respuesta. Comprobamos que se hayan recibido datos, que el código de respuesta sea correcto (200) y que no hayan errores. No te olvides de ejecutar la tarea y lánzala con resume()

Si todo esta correcto, pasamos a un bloque do-catch en el cual llamamos al método decode() de la clase JSONDecoder pasándole el tipo de dato a recibir que será una array de la clase User, la cual implementa el protocolo Codable. Como segundo parámetro le pasamos los datos de la respuesta anterior.

Para ver en consola el resultado se ha usado el método map que recorre el array de usuarios a la salida.

--

--

Rafael Asencio
Rafael Asencio

No responses yet