←Tools-Übersicht/

JSON-zu-Swift-Codable-Struct-Konverter (iOS / macOS Model Generator)

Konvertiert beliebige JSON-Payloads in typsichere Swift Codable Structs mit benutzerdefiniertem CodingKeys-Mapping, optionalen Properties für Null-Werte und Extraktion verschachtelter Structs.

Quell-JSON-Payload
784 chars
Swift Codable-Modelle erfolgreich generiert.
Generierte Swift-Modelle
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
Generierte Structs4
Gemappte Eigenschaften24
JSON-Payload-Größe24
Technische Referenz & Architektur-Leitfaden

JSON-zu-Swift-Codable-Struct-Konverter (iOS / macOS Model Generator) — Referenz-Leitfaden

Konvertiert beliebige JSON-Payloads in typsichere Swift Codable Structs mit benutzerdefiniertem CodingKeys-Mapping, optionalen Properties für Null-Werte und Extraktion verschachtelter Structs.

Wichtige Parameter & Steuerelemente

rootStructNameString

Der Bezeichner für das Swift-Top-Level-Struct (z. B. 'UserResponse' oder 'PayloadRoot').

keyDecodingStrategyEnum (useCamelCase | convertFromSnakeCase | customCodingKeys)

Bestimmt, wie Property-Namen gemappt werden. 'customCodingKeys' generiert explizite CodingKeys-Enum-Cases, die snake_case-Keys auf camelCase-Properties abbilden, während 'convertFromSnakeCase' davon ausgeht, dass JSONDecoder().keyDecodingStrategy die Konvertierung zur Laufzeit übernimmt.

accessLevelEnum (internal | public | open | fileprivate)

Zugriffsmodifikator (Access Level), der Structs, Initializern und synthetisierten CodingKeys-Enums vorangestellt wird.

generateIdentifiableBoolean

Wenn true, werden Models, die eine 'id'-Property (UUID, Int oder String) enthalten, automatisch an das SwiftUI-Protokoll 'Identifiable' angepasst.

nestedStructExtractionEnum (inline | separateFiles | flatNamespaced)

Gibt an, ob untergeordnete Objekte als innere Typen (Nested Types) innerhalb des übergeordneten Structs definiert, als eigenständige Top-Level-Structs generiert oder für separate Datei-Exporte bereitgestellt werden.

Profi-Tipps & Best Practices

Häufige Fallstricke & Fehlerbehebung

Der Swift-Compiler schlägt mit dem Fehler 'Type does not conform to protocol Decodable' fehl, wenn `[String: Any]`-Dictionary-Felder vorkommen.

Swifts Typ `Any` kann nicht zu `Decodable` konform sein. Ersetzen Sie heterogene Dictionary-Typen durch einen stark typisierten generischen Wrapper wie `AnyCodable` oder definieren Sie ein dediziertes Struct bzw. Enum mit assoziierten Werten für valide Schemavarianten.

Laufzeitfehler `DecodingError.keyNotFound` oder `DecodingError.valueNotFound` beim Parsen von nullfähigen oder bedingt fehlenden JSON-Attributen.

Deklarieren Sie alle Properties, die den Wert `null` annehmen können oder in bestimmten Backend-Antworten weggelassen werden, als optional (`Type?`). Der synthetisierte Codable-Initializer weist automatisch `nil` zu, wenn der Schlüssel fehlt oder explizit null ist.

Compiler gibt die Warnung 'Ambiguous reference to member CodingKeys' aus, wenn bei der Extraktion verschachtelter Structs identische Child-Namen verwendet werden.

Kapseln Sie Child-Structs im Namespace ihres übergeordneten Structs (z. B. `User.Address` statt eines Top-Level-`Address`) oder vergeben Sie bei der Generierung eindeutige Struct-Präfixe, um Symbolkollisionen über verschiedene Scopes hinweg zu verhindern.

Häufig gestellte Fragen (FAQ)

▼

▼

▼

▼

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →