←Inicio de herramientas/

Conversor de JSON a Structs Swift Codable (Generador de Modelos para iOS / macOS)

Transforma payloads JSON arbitrarios en structs Swift Codable con tipado estático seguro, mapeo personalizado mediante CodingKeys, propiedades opcionales para valores nulos y extracción de structs anidados.

Payload JSON de origen
784 chars
Modelos Codable de Swift generados correctamente.
Modelos de Swift generados
import Foundation


public struct UserResponse: Codable, Sendable {
    public let `id`: String
    public let firstName: String
    public let lastName: String
    public let emailAddress: String
    public let isActiveMember: Bool
    public let creditBalance: Double
    public let loginCount: Int
    public let avatarUrl: String?
    public let createdAt: String
    public let addressInfo: AddressInfo
    public let tagList: [String]
    public let securityRoles: [SecurityRole]
    public let preferences: Preferences

    public enum CodingKeys: String, CodingKey {
        case `id`
        case firstName = "first_name"
        case lastName = "last_name"
        case emailAddress = "email_address"
        case isActiveMember = "is_active_member"
        case creditBalance = "credit_balance"
        case loginCount = "login_count"
        case avatarUrl = "avatar_url"
        case createdAt = "created_at"
        case addressInfo = "address_info"
        case tagList = "tag_list"
        case securityRoles = "security_roles"
        case preferences
    }
}

public struct Preferences: Codable, Sendable {
    public let darkModeEnabled: Bool
    public let notificationFrequency: String
    public let backupIntervalDays: Int

    public enum CodingKeys: String, CodingKey {
        case darkModeEnabled = "dark_mode_enabled"
        case notificationFrequency = "notification_frequency"
        case backupIntervalDays = "backup_interval_days"
    }
}

public struct SecurityRole: Codable, Sendable {
    public let roleId: String
    public let displayLabel: String
    public let accessLevel: Int
    public let permissions: [String]

    public enum CodingKeys: String, CodingKey {
        case roleId = "role_id"
        case displayLabel = "display_label"
        case accessLevel = "access_level"
        case permissions
    }
}

public struct AddressInfo: Codable, Sendable {
    public let streetLine1: String
    public let postalCode: String
    public let cityName: String
    public let countryCode: String

    public enum CodingKeys: String, CodingKey {
        case streetLine1 = "street_line1"
        case postalCode = "postal_code"
        case cityName = "city_name"
        case countryCode = "country_code"
    }
}
Target: iOS 13+ / macOS 10.15+ / watchOS 6+Swift 5.9+ / Swift 6 Sendable
Structs generados4
Propiedades mapeadas24
Tamaño del payload JSON24
Referencia técnica y guía de arquitectura

Conversor de JSON a Structs Swift Codable (Generador de Modelos para iOS / macOS) — Guía de referencia

Transforma payloads JSON arbitrarios en structs Swift Codable con tipado estático seguro, mapeo personalizado mediante CodingKeys, propiedades opcionales para valores nulos y extracción de structs anidados.

Parámetros clave y controles

rootStructNameString

El identificador utilizado para el struct raíz de Swift (por ejemplo, 'UserResponse' o 'PayloadRoot').

keyDecodingStrategyEnum (useCamelCase | convertFromSnakeCase | customCodingKeys)

Determina cómo se mapean los nombres de las propiedades. 'customCodingKeys' genera casos explícitos en el enum CodingKeys asociando claves en snake_case con propiedades en camelCase, mientras que 'convertFromSnakeCase' asume que JSONDecoder().keyDecodingStrategy realiza la conversión en tiempo de ejecución.

accessLevelEnum (internal | public | open | fileprivate)

Modificador de control de acceso antepuesto a los structs, inicializadores y enums CodingKeys sintetizados.

generateIdentifiableBoolean

Cuando es true, conforma automáticamente los modelos que contienen una propiedad 'id' (UUID, Int o String) al protocolo 'Identifiable' de SwiftUI.

nestedStructExtractionEnum (inline | separateFiles | flatNamespaced)

Especifica si los objetos secundarios se definen como tipos internos dentro del struct padre, si se generan como structs independientes de nivel superior o si se preparan para exportarse en archivos separados.

Consejos profesionales y mejores prácticas

Errores comunes y solución de problemas

El compilador de Swift arroja el error 'Type does not conform to protocol Decodable' al encontrar campos de diccionario de tipo `[String: Any]`.

El tipo `Any` en Swift no puede conformar `Decodable`. Sustituye los diccionarios heterogéneos por un contenedor genérico fuertemente tipado como `AnyCodable` o define un struct/enum dedicado con valores asociados para las variantes válidas del esquema.

Se produce el error en tiempo de ejecución `DecodingError.keyNotFound` o `DecodingError.valueNotFound` al parsear atributos JSON opcionales o ausentes condicionalmente.

Declara como opcionales (`Tipo?`) todas las propiedades que puedan evaluar a `null` o que puedan omitirse en ciertas respuestas del backend. El inicializador sintetizado de Codable asignará automáticamente `nil` si la clave no está presente o es explícitamente nula.

El compilador emite la advertencia 'Ambiguous reference to member CodingKeys' al utilizar la extracción de structs anidados con nombres de hijos idénticos.

Organiza los structs secundarios dentro del espacio de nombres de su struct padre (por ejemplo, `User.Address` en lugar de `Address` en el nivel superior) o asigna prefijos únicos a los structs durante la generación para prevenir colisiones de símbolos entre ámbitos.

Preguntas frecuentes (FAQ)

▼

▼

▼

▼

Herramientas y utilidades relacionadas

Todas las herramientas →
Generador de Java Records, Lombok y POJOs Jackson a partir de JSONdeveloper

Genera Records idiomáticos de Java, clases Lombok con @Data o POJOs estándar de Java con anotaciones Jackson @JsonProperty e inferencia de tipos a partir de JSON.

Abrir herramienta→
Generador de Records y Clases C# .NET a partir de JSON (System.Text.Json y Newtonsoft)developer

Convierte payloads JSON en records, clases y structs fuertemente tipados en C#, compatibles con los atributos de System.Text.Json [JsonPropertyName] y Newtonsoft.Json.

Abrir herramienta→
Parser de logs de acceso Nginx y Apache (Métricas, códigos de estado y GeoIP)developer

Analiza localmente logs de acceso crudos de Nginx y Apache con distribuciones de códigos de estado, URLs más solicitadas, IPs de clientes únicas, métricas de ancho de banda y coincidencia de patrones regex personalizados.

Abrir herramienta→
Conversor de GraphQL SDL a JSON Schema y OpenAPIdeveloper

Convierte definiciones de esquemas, tipos, queries y mutations en GraphQL SDL directamente a esquemas estándar de JSON Schema Draft-07 y componentes de OpenAPI.

Abrir herramienta→
Sintaxis Crontab y Expresiones Quartz Cheat Sheetdeveloper

Guía definitiva de sintaxis cron POSIX de 5 campos y formato Quartz de 6 campos. Macros, cálculo de ciclos de ejecución y prevención de ejecuciones simultáneas.

Abrir herramienta→
Guía Técnica de Expresiones Regulares (RegEx)developer

Manual técnico de sintaxis ECMAScript RegExp, grupos de captura, aserciones lookahead/lookbehind y tokens de sustitución.

Abrir herramienta→