DT Dev Tools

Convertir JSON a Swift — Generador de modelos Codable

Convierte JSON a structs o clases Swift Codable en línea con CodingKeys, opcionales y tipos anidados. Listo para JSONDecoder: gratis, rápido y privado.

🔒 Se ejecuta completamente en tu navegador — nada se sube

Publicidad

Modelos Swift Codable a partir de JSON

El protocolo Codable de Swift reduce la decodificación de JSON a una sola línea, siempre que tengas tipos que coincidan exactamente con el payload. Este conversor de JSON a Swift genera esos tipos a partir de un ejemplo. Cada objeto se convierte en una struct (o class) que cumple Codable, las claves pasan a ser propiedades camelCase, los objetos anidados se convierten en tipos propios, los arrays en arrays de Swift tipados y los valores que faltan o son null en parte del ejemplo pasan a ser opcionales. Los enums CodingKeys explícitos vinculan cada propiedad con la clave JSON original, de modo que las API en snake_case se decodifican sin ninguna estrategia personalizada.

El motor que hay detrás es quicktype, que combina todos los elementos de cada array antes de inferir los tipos. Un campo que aparece solo en algunos elementos pasa igualmente a ser una propiedad opcional, lo que evita el temido error de decodificación keyNotFound en tiempo de ejecución.

Structs, clases y helpers

Las structs son la opción por defecto porque los tipos por valor son lo idiomático para los modelos en SwiftUI y en la mayor parte del código moderno de iOS y macOS. Cambia a clases cuando necesites semántica de referencia o interoperabilidad con Objective-C. Por defecto, la salida también contiene helpers de conveniencia — inicializadores desde datos y cadenas JSON, métodos jsonData() y jsonString() y un mutador with(...) — que facilitan el uso de los modelos en pruebas y previsualizaciones. Marca Types only si prefieres un archivo mínimo con solo las declaraciones Codable.

Consejos antes de pegar en Xcode

Usa un ejemplo completo, con varios elementos por array y campos opcionales rellenos. Cambia el nombre del tipo raíz de Root a algo significativo como FeedResponse; la descarga usará ese nombre. Después, considera convertir en enums los campos de cadena con valores conocidos, usar Date con un dateDecodingStrategy acorde y marcar las propiedades como var donde necesites mutación. Todo ocurre en local en tu navegador, así que las respuestas de API privadas nunca se suben.

Cómo usar

  1. Pega el JSONPega una respuesta JSON o carga el ejemplo.
  2. Elige el estiloSelecciona struct o class, los CodingKeys y si incluir los helpers.
  3. Copia en XcodeCopia el código Swift o descarga un archivo .swift para tu proyecto.

Preguntas frecuentes

¿Los tipos generados son Codable?
Sí. Cada struct o clase cumple Codable, así que puedes decodificarla de inmediato con JSONDecoder.
¿Para qué sirven los CodingKeys explícitos?
Asignan los nombres de propiedad Swift en camelCase a las claves JSON exactas. Déjalos activados cuando las claves usen snake_case u otros nombres que no sean identificadores Swift válidos.
¿Puedo generar clases en lugar de structs?
Sí. Cambia Types a class si necesitas semántica de referencia, por ejemplo para Core Data o para interoperar con Objective-C.
¿Se sube mi JSON?
No. Toda la conversión se ejecuta en tu navegador; no se envía nada a un servidor.
Publicidad