DocumentosImágenesMediaHerramientas PDF

Convertir JSON a Swift Struct

Genera structs Codable de Swift desde JSON, gratis, en tu navegador.

Procesado en tu navegador

De JSON a Swift Struct Codable

Listo para iOS y SwiftUI

Genera structs compatibles con URLSession, Alamofire, SwiftUI y Combine. Pega directamente en Xcode.

100% privado

Tu JSON de API nunca sale de tu navegador. Sin registro, sin telemetría.

Codable correcto

CodingKeys automático para snake_case, Optional para nullables, tipos correctos (Int, Double, Bool). Código idiomático.

Instantáneo

Structs generados en tiempo real mientras escribes. Sin botones, sin esperas.

Tres pasos, sin complicaciones

1

Pega tu JSON

Pega el JSON de tu API o respuesta web. Funciona con objetos anidados, arrays y cualquier estructura JSON válida.

2

Generación instantánea

La herramienta genera structs de Swift que conforman el protocolo Codable automáticamente, con CodingKeys cuando es necesario.

3

Copia el código

Copia los structs generados y úsalos directamente en tu proyecto iOS, macOS o SwiftUI.

¿Tienes dudas?

Codable es un alias de tipo introducido en Swift 4 (WWDC 2017) que combina dos protocolos: Encodable (puede convertirse a un formato externo como JSON) y Decodable (puede crearse desde un formato externo). Un tipo que conforma Codable puede tanto serializar como deserializar datos. La conformancia se obtiene automáticamente mediante síntesis del compilador si todas las propiedades también conforman Codable.

Para modelos de datos JSON se prefieren structs por varias razones: los structs son value types (se copian en lugar de referenciar), lo que evita problemas de estado compartido; el compilador puede optimizarlos mejor; y en SwiftUI, los structs funcionan mejor con el modelo de datos reactivo. Las clases (reference types) tienen su lugar cuando necesitas herencia o identidad de objeto, pero para modelos de API los structs son la práctica recomendada.

CodingKeys es un enum anidado que mapea los nombres de propiedades de Swift a los nombres de claves en el JSON. Es necesario cuando los nombres del JSON (típicamente snake_case en APIs REST) difieren de las convenciones de Swift (camelCase). Por ejemplo, si el JSON tiene first_name, el CodingKey mapea esa clave al campo firstName del struct. Sin CodingKeys, Swift espera que los nombres del JSON coincidan exactamente con los nombres de las propiedades.

En Swift, un tipo Optional (marcado con ?) puede tener un valor o ser nil. Cuando un campo JSON puede estar ausente o ser null, la propiedad en el struct se declara como Optional: var email: String? en lugar de var email: String. JSONDecoder de Foundation maneja automáticamente la deserialización: si la clave no existe en el JSON o su valor es null, la propiedad queda como nil sin lanzar un error.

El flujo típico con URLSession y Codable es: URLSession.shared.dataTask devuelve Data; JSONDecoder().decode(MiStruct.self, from: data) convierte el Data al struct; el resultado se usa en la UI en el main thread. Con Swift 5.5+ y async/await, se usa let data = try await URLSession.shared.data(for: request) seguido de let objeto = try JSONDecoder().decode(MiStruct.self, from: data). Este patrón es la base de toda integración de APIs en iOS moderno.

Swift para iOS/macOS, el protocolo Codable (2017) e integración de APIs con SwiftUI

Swift fue presentado por Apple en la WWDC 2014 como el sucesor de Objective-C para el desarrollo de apps en iOS, macOS, watchOS y tvOS. Con la introducción de Codable en Swift 4 (WWDC 2017), el trabajo con JSON se simplificó radicalmente. Antes de Codable, los desarrolladores usaban librerías de terceros como SwiftyJSON o Codable frameworks de Alamofire. Con Codable nativo, solo necesitas JSONDecoder y structs bien tipados, sin dependencias externas.

SwiftUI, introducido en la WWDC 2019, reforzó el uso de structs como modelos de datos. La arquitectura de SwiftUI basada en value types y el protocolo View como struct encaja perfectamente con los modelos Codable. Patrones como MVVM (Model-View-ViewModel) en SwiftUI usan @Published en ViewModels ObservableObject con structs Codable como modelos, creando un flujo de datos predecible y testeable.

Con Swift 5.5 (WWDC 2021) y la introducción de async/await, el consumo de APIs REST se volvió aún más limpio. URLSession.shared.data(for:) ahora es una función async que elimina los completion handlers anidados (callback hell). Combinado con JSONDecoder, el patrón completo de fetch + decode es apenas 3 líneas de código. Esta herramienta genera los structs Codable necesarios para ese patrón, procesando todo en tu navegador sin enviar tus datos a ningún servidor.