←Início das Ferramentas/

Conversor de JSON para Structs Codable em Swift (Gerador de Models para iOS / macOS)

Transforme payloads JSON arbitrários em structs Swift tipadas e seguras em conformidade com Codable, com mapeamento customizado via CodingKeys, propriedades opcionais para valores nulos e extração de structs aninhadas.

Payload JSON de Origem
784 chars
Modelos Codable em Swift gerados com sucesso.
Modelos Swift Gerados
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 Geradas4
Propriedades Mapeadas24
Tamanho do Payload JSON24
Referência técnica e guia de arquitetura

Conversor de JSON para Structs Codable em Swift (Gerador de Models para iOS / macOS) — Guia de referência

Transforme payloads JSON arbitrários em structs Swift tipadas e seguras em conformidade com Codable, com mapeamento customizado via CodingKeys, propriedades opcionais para valores nulos e extração de structs aninhadas.

Parâmetros principais e controles

rootStructNameString

O identificador utilizado para a struct Swift raiz (por exemplo, 'UserResponse' ou 'PayloadRoot').

keyDecodingStrategyEnum (useCamelCase | convertFromSnakeCase | customCodingKeys)

Determina como os nomes das propriedades são mapeados. 'customCodingKeys' gera explicitamente cases de enum CodingKeys mapeando chaves em snake_case para propriedades em camelCase, enquanto 'convertFromSnakeCase' assume que o JSONDecoder().keyDecodingStrategy gerenciará a conversão em tempo de execução.

accessLevelEnum (internal | public | open | fileprivate)

Modificador de controle de acesso prefixado em structs, inicializadores e enums sintetizados de CodingKeys.

generateIdentifiableBoolean

Quando verdadeiro, aplica automaticamente a conformidade ao protocolo 'Identifiable' do SwiftUI para modelos contendo a propriedade 'id' (UUID, Int ou String).

nestedStructExtractionEnum (inline | separateFiles | flatNamespaced)

Especifica se os objetos filhos são definidos como tipos internos (inner types) dentro da struct pai, gerados como structs raiz independentes ou preparados para exportação em arquivos separados.

Dicas profissionais e melhores práticas

Problemas comuns e solução de problemas

O compilador Swift falha com o erro 'Type does not conform to protocol Decodable' ao encontrar campos de dicionário do tipo `[String: Any]`.

O tipo `Any` do Swift não pode implementar `Decodable`. Substitua dicionários heterogêneos por um wrapper genérico fortemente tipado, como `AnyCodable`, ou defina uma struct/enum dedicada com valores associados (associated values) para representar as variações do schema.

Erro em tempo de execução `DecodingError.keyNotFound` ou `DecodingError.valueNotFound` lançado ao decodificar atributos do JSON que são nulos ou ausentes condicionalmente.

Declare todas as propriedades que podem assumir valor `null` ou ser omitidas pela API como opcionais (`Type?`). O inicializador sintetizado do Codable atribuirá `nil` automaticamente caso a chave esteja ausente ou seja explicitamente nula.

Aviso do compilador 'Ambiguous reference to member CodingKeys' ao extrair structs aninhadas que compartilham nomes idênticos.

Adicione namespace às structs filhas sob o escopo do pai (por exemplo, `User.Address` em vez de um `Address` global) ou configure prefixos exclusivos para os nomes das structs durante a geração, evitando colisões de símbolos entre escopos.

Perguntas frequentes (FAQ)

▼

▼

▼

▼

Ferramentas e utilitários relacionados

Todas as ferramentas →
Gerador de Java Record, Lombok e Jackson POJO a partir de JSONdeveloper

Gere Java Records idiomáticos, classes Lombok com @Data ou POJOs Java padrão com anotações Jackson @JsonProperty e inferência de tipos a partir de JSON.

Abrir ferramenta→
Gerador de Records e Classes C# .NET a partir de JSON (System.Text.Json e Newtonsoft)developer

Converta payloads JSON em records, classes e structs C# fortemente tipados com suporte a atributos do System.Text.Json ([JsonPropertyName]) e Newtonsoft.Json.

Abrir ferramenta→
Analisador de Logs de Acesso Nginx & Apache (Métricas, Códigos de Status e GeoIP)developer

Analise logs de acesso brutos do Nginx e Apache localmente com distribuições de códigos de status, URLs mais requisitadas, IPs únicos de clientes, métricas de largura de banda e correspondência de padrões via regex customizada.

Abrir ferramenta→
Conversor de GraphQL SDL para JSON Schema e OpenAPIdeveloper

Converta definições de esquemas GraphQL SDL, tipos, queries e mutations diretamente em especificações padrão do JSON Schema Draft-07 e schemas de componentes do OpenAPI.

Abrir ferramenta→
Sintaxe Crontab e Expressões Quartz Cheat Sheetdeveloper

Manual completo da sintaxe cron POSIX de 5 campos e Quartz de 6 campos. Macros, intervalos de execução e controle de sobreposição de tarefas.

Abrir ferramenta→
Guia de Expressões Regulares (RegEx) e Validação de Sintaxedeveloper

Folha de referência para sintaxe ECMAScript RegExp, grupos de captura nomeados, asserções lookaround e sinalizadores de execução.

Abrir ferramenta→