Trabajo con JSON en Swift: análisis y serialización para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción al trabajo con JSON en Swift

JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos ampliamente utilizado en el desarrollo móvil y web. Para los desarrolladores principiantes en Swift (iOS/macOS), saber trabajar con JSON es una habilidad obligatoria. En este artículo analizaremos dos enfoques principales: el clásico JSONSerialization y el protocolo moderno Codable. Aprenderá cómo obtener datos de la red, analizarlos y convertirlos nuevamente a JSON para enviarlos al servidor.

Independientemente de si está creando una aplicación para el clima, una lista de tareas o una red social, JSON será su fiel compañero. Comencemos con un ejemplo simple y pasemos gradualmente a escenarios más complejos.



Fundamentos de JSON en Swift: estructura y tipos de datos

Antes de escribir código, es importante entender cómo se ve JSON. En Swift, JSON se representa como diccionarios ([String: Any]) y arreglos ([Any]). Los tipos de datos principales en JSON son:

  • Cadenas — encerradas entre comillas dobles ("Hola")
  • Números — enteros y de punto flotante (42, 3.14)
  • Valores booleanos — true o false
  • Arreglos — listas ordenadas de valores ([1, 2, 3])
  • Objetos — colecciones no ordenadas de pares "clave-valor" ({"clave": "valor"})
  • null — valor vacío

En Swift, para representar JSON es conveniente usar las estructuras de datos integradas. Veamos un ejemplo de un objeto JSON simple:

{  "name": "Iván",  "age": 25,  "isStudent": false,  "hobbies": ["lectura", "programación"]}

Ahora veamos cómo trabajar con este formato en código Swift.



Análisis de JSON con JSONSerialization (método clásico)

Antes de la aparición del protocolo Codable, los desarrolladores usaban la clase JSONSerialization. Este método sigue siendo relevante hoy en día, especialmente cuando la estructura del JSON es desconocida de antemano o es muy dinámica.

Ejemplo básico de análisis

Supongamos que tenemos una cadena JSON que debe convertirse en objetos Swift:

let jsonString = """{  "name": "María",  "age": 30,  "isEmployed": true}"""

if let jsonData = jsonString.data(using: .utf8) { do { if let dictionary = try JSONSerialization.jsonObject(with: jsonData, options: []) as? [String: Any] { let name = dictionary["name"] as? String ?? "Desconocido" let age = dictionary["age"] as? Int ?? 0 let isEmployed = dictionary["isEmployed"] as? Bool ?? false print("Nombre: \\(name), Edad: \\(age), Trabaja: \\(isEmployed)") } } catch { print("Error al analizar JSON: \\(error.localizedDescription)") }}

Tenga en cuenta: después de obtener el diccionario, convertimos explícitamente cada elemento al tipo deseado. Esto puede ser incómodo cuando hay muchos campos.



Trabajo con arreglos en JSON

A menudo, JSON contiene arreglos de objetos. Analicemos un ejemplo con un arreglo de usuarios:

let jsonArrayString = """[  {"name": "Ana", "age": 22},  {"name": "Pedro", "age": 28}]"""

if let data = jsonArrayString.data(using: .utf8) { do { if let users = try JSONSerialization.jsonObject(with: data, options: []) as? [[String: Any]] { for user in users { let name = user["name"] as? String ?? "" let age = user["age"] as? Int ?? 0 print("\\(name): \\(age) años") } } } catch { print("Error: \\(error)") }}

El método JSONSerialization es simple, pero requiere mucha conversión manual de tipos. Para proyectos modernos, Apple recomienda usar Codable.



Blogs

Book Recommendations