Incluye ejemplos distintos
La raíz admite un objeto o un array no vacío de objetos. Si es un array, se genera el modelo del elemento Root: decodifica [Root].self. Los arrays anidados también combinan todos sus elementos.
Generación de tipos
Compara dos registros para entender qué propiedades pasan a ser opcionales.
El análisis y la generación se realizan en este navegador. La entrada no se sube ni se almacena.
El array raíz define el elemento Root; decodifica [Root].self.
2 structs · 2 propiedades opcionales
JSON a Swift ayuda a preparar modelos a partir de ejemplos de una API. Incluye respuestas donde falten claves: un solo objeto completo no permite descubrir todos los campos que podrían omitirse.
Este generador Swift Codable crea un borrador de struct Swift con CodingKeys. Los campos opcionales describen lo observado; las reglas obligatorias y futuras variantes pertenecen al contrato de tu aplicación.
JSON a Swift combina objetos en la misma posición de un array. Las claves ausentes y null producen propiedades opcionales; los valores siempre presentes mantienen un tipo concreto.
Los sellos de tiempo siguen siendo cadenas por defecto. La inferencia ISO conecta solo fechas completas válidas con Date y un decodificador adecuado; las demás cadenas conservan su tipo.
La raíz admite un objeto o un array no vacío de objetos. Si es un array, se genera el modelo del elemento Root: decodifica [Root].self. Los arrays anidados también combinan todos sus elementos.
Conserva CodingKeys para claves snake_case o especiales. Elige camelCase o preservar identificadores válidos. La inferencia ISO exige zona horaria y un máximo de tres cifras de fracción de segundo.
La generación automática espera 350 ms. Desactívala para usar el botón o Ctrl/Cmd+Enter. Cada cambio bloquea exportaciones antiguas. Ejemplo y Borrar muestran primero el número de caracteres y guardan una acción de deshacer al aplicar.
JSON a Swift produce propiedades var y estructuras Codable. Los objetos hijos no vacíos tienen modelos auxiliares, los vacíos son diccionarios y los valores mezclados usan un enum JSONValue recursivo, sin depender de Any.
Los grupos con escritura entera dentro del rango de 64 bits con signo usan Int64. Decimales, exponentes, enteros mayores y sus grupos combinados usan Foundation.Decimal. No se convierten antes a JavaScript Number.
El modo observado detecta ausencia y null; el modo global permite omitir todas las propiedades. Codable sintetizado lee ambos casos como nil y suele omitir esas propiedades al codificar. No mantiene la diferencia entre ausencia y null.
makeJSONDecoder() conserva la estrategia de claves predeterminada. Cuando aparece Date, prueba ISO8601DateFormatter con y sin fracciones. Para volver a producir texto ISO, configura por separado la estrategia de fechas de JSONEncoder.
No. La página genera código fuente, pero no ejecuta un compilador Swift en el navegador. JSON a Swift se validó durante el desarrollo con compilación real; prueba el archivo descargado en tu proyecto y sistema de destino.
El modo predeterminado los considera opcionales. La síntesis Codable lee ausencia y null como nil y normalmente omite ese campo al codificar. Si necesitas distinguir tres estados, añade una implementación personalizada.
Se normalizan según camelCase o conservación de nombres válidos. Los símbolos, palabras reservadas y colisiones se renombran y CodingKeys retiene la clave original. Si desactivas el mapeo y hace falta renombrar, se muestra un error.
Sí. Cada estructura implementa Codable y los valores mixtos usan un enum que también lo implementa. Usa makeJSONDecoder() con Root.self o [Root].self y conserva su estrategia de claves.
Se admite un objeto o un array no vacío compuesto solo por objetos en la raíz. Dentro se combinan arrays y se generan estructuras auxiliares. Objetos vacíos y valores heterogéneos reciben tipos más amplios.
¿Has encontrado una inferencia mejorable?
Usa JSON a Swift con null, números reales y variaciones de tu API, y verifica el código descargado en el entorno donde se ejecutará.