←Accueil des outils/

Convertisseur JSON vers Struct Swift Codable (Générateur de Modèles iOS / macOS)

Transformez n'importe quel payload JSON en structures Swift Codable typées et sécurisées, avec mappage personnalisé via CodingKeys, propriétés optionnelles pour les valeurs nulles et extraction automatique des structures imbriquées.

Charge utile JSON source
784 chars
Modèles Codable Swift générés avec succès.
Modèles Swift générés
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
Structures générées4
Propriétés mappées24
Taille de la charge utile JSON24
Référence technique et guide d'architecture

Convertisseur JSON vers Struct Swift Codable (Générateur de Modèles iOS / macOS) — Guide de référence

Transformez n'importe quel payload JSON en structures Swift Codable typées et sécurisées, avec mappage personnalisé via CodingKeys, propriétés optionnelles pour les valeurs nulles et extraction automatique des structures imbriquées.

Paramètres clés et contrôles

rootStructNameString

L'identifiant utilisé pour la structure Swift racine de premier niveau (ex. : 'UserResponse' ou 'PayloadRoot').

keyDecodingStrategyEnum (useCamelCase | convertFromSnakeCase | customCodingKeys)

Définit le mode de mappage des noms de propriétés. 'customCodingKeys' génère des cas d'énumération CodingKeys explicites reliant les clés snake_case aux propriétés en camelCase, tandis que 'convertFromSnakeCase' délègue la conversion au runtime à JSONDecoder().keyDecodingStrategy.

accessLevelEnum (internal | public | open | fileprivate)

Modificateur de contrôle d'accès préfixé aux structures, aux initialiseurs et aux énumérations CodingKeys synthétisées.

generateIdentifiableBoolean

Lorsque la valeur est true, applique automatiquement la conformité au protocole SwiftUI 'Identifiable' pour les modèles contenant une propriété 'id' (de type UUID, Int ou String).

nestedStructExtractionEnum (inline | separateFiles | flatNamespaced)

Précise si les objets enfants sont déclarés comme des types internes imbriqués dans la structure parente, générés sous forme de structures indépendantes de premier niveau, ou répartis pour un export dans des fichiers séparés.

Conseils de pro et bonnes practices

Pièges courants et dépannage

Le compilateur Swift lève l'erreur 'Type does not conform to protocol Decodable' lors de la rencontre de champs de type dictionnaire `[String: Any]`.

Le type `Any` de Swift ne peut pas se conformer à `Decodable`. Remplacez les dictionnaires hétérogènes par un wrapper générique fortement typé comme `AnyCodable`, ou définissez une structure/énumération dédiée avec des valeurs associées pour couvrir les variantes valides du schéma.

Erreur d'exécution `DecodingError.keyNotFound` ou `DecodingError.valueNotFound` levée lors du parsing d'attributs JSON nullables ou conditionnellement absents.

Déclarez toutes les propriétés pouvant valoir `null` ou susceptibles d'être omises des réponses du backend en tant qu'optionnels (`Type?`). L'initialiseur synthétisé par Codable assignera automatiquement la valeur `nil` si la clé est absente ou explicitement nulle.

Le compilateur émet l'avertissement 'Ambiguous reference to member CodingKeys' lors de l'extraction de structures imbriquées partageant des noms d'enfants identiques.

Placez les structures enfants dans l'espace de noms de leur parent (par exemple `User.Address` au lieu d'un `Address` de premier niveau) ou définissez des préfixes uniques lors de la génération pour éliminer les collisions de symboles entre portées.

Foire aux questions (FAQ)

▼

▼

▼

▼

Outils et utilitaires connexes

Tous les outils →
Générateur de Java Records, POJOs Lombok et Jackson à partir de JSONdeveloper

Générez des Java Records idiomatiques, des classes Lombok @Data ou des POJOs Java standards avec inférence de types et annotations Jackson @JsonProperty à partir d'un JSON.

Ouvrir l'outil→
Générateur de Records & Classes C# .NET depuis JSON (System.Text.Json & Newtonsoft)developer

Convertissez des payloads JSON en records, classes et structs C# fortement typés, prenant en charge les attributs System.Text.Json [JsonPropertyName] et Newtonsoft.Json.

Ouvrir l'outil→
Analyseur de logs d'accès Nginx & Apache (Métriques, codes d'état & GeoIP)developer

Analysez localement vos journaux d'accès bruts Nginx et Apache : distribution des codes d'état, URL les plus sollicitées, adresses IP clientes uniques, métriques de bande passante et filtrage par expressions régulières personnalisées.

Ouvrir l'outil→
Convertisseur GraphQL SDL vers JSON Schema & OpenAPIdeveloper

Convertissez directement les définitions de schémas GraphQL SDL, types, requêtes et mutations en schémas JSON Schema Draft-07 et composants OpenAPI standard.

Ouvrir l'outil→
Syntaxe Crontab & Expressions Quartz Cheat Sheetdeveloper

Référence exhaustive de la syntaxe cron POSIX à 5 champs et Quartz à 6 champs. Raccourcis macros, calcul des cycles et prévention des chevauchements de tâches.

Ouvrir l'outil→
Guide Pratique des Expressions Régulières (RegEx) JavaScriptdeveloper

Manuel technique des expressions régulières ECMAScript, groupes de capture, remplacements et drapeaux de configuration.

Ouvrir l'outil→