Tool von Tool Kumar

Swift-Modell aus JSON generieren

Generiere Swift-Structs, die Codable implementieren. Der Konverter ergänzt CodingKeys, wenn Eigenschaftsnamen vom JSON abweichen. So wird ein Schlüssel wie user-id weiterhin als userId dekodiert.

So verwendest du dieses Tool

  1. Füge eine repräsentative Antwort ein, auch mit Datensätzen, deren Felder sich unterscheiden.
  2. Prüfe die generierte Ausgabe und ändere bei Bedarf den Stammnamen.
  3. Kopiere den Code oder lade ihn herunter. Prüfe anschließend die Typen anhand deines API-Vertrags.

Praxisbeispiel

Diese Ausgabe stammt aus dem integrierten Konverter. Aus den beiden Artikelpreisen wird ein Gleitkommafeld abgeleitet. Die Werte null und ein String im Feld note ergeben ein Feld, das null sein kann.

Eingabe

{
  "user-id": 42,
  "profile": {
    "city": "London",
    "created_at": "2026-10-14T09:00:00Z"
  },
  "items": [
    {
      "price": 12,
      "note": null
    },
    {
      "price": 12.5,
      "note": "gift"
    }
  ]
}

Ausgabe

import Foundation

struct Root: Codable {
    let userId: Int
    let profile: Profile
    let items: [Item]

    enum CodingKeys: String, CodingKey {
        case userId = "user-id"
        case profile, items
    }
}

struct Profile: Codable {
    let city: String
    let createdAt: String

    enum CodingKeys: String, CodingKey {
        case city
        case createdAt = "created_at"
    }
}

struct Item: Codable {
    let price: Double
    let note: String?
}

Mit JSONDecoder dekodieren

Verwende JSONDecoder mit dem generierten Struct Root. Codable unterstützt auch das Kodieren desselben Modells mit JSONEncoder.

Behalte für diese Ausgabe die Standardstrategie für Schlüssel bei. Die CodingKeys enthalten bereits die ursprünglichen JSON-Namen, einschließlich created_at.

let model = try JSONDecoder().decode(Root.self, from: responseData)
let encoded = try JSONEncoder().encode(model)

Optionen und Sonderfälle

  • Aus Ganzzahlen wird Int abgeleitet, aus Bruchzahlen Double und aus Ganzzahlen jenseits des vorzeichenbehafteten 64-Bit-Bereichs Decimal. Prüfe die Grenzen der Zielplattform und die Dezimalgenauigkeit.
  • null-Werte oder fehlende Felder werden zu optionalen Eigenschaften. Bei ausschließlich null oder gemischten Strukturen wird bei Bedarf der generierte Hilfstyp JSONValue verwendet.
  • JSONValue speichert Zahlen als Double. Verwende daher explizite Typen für exakte Geldbeträge oder sehr große IDs.
  • Datumsstrings bleiben String. Wenn du ein Feld zu Date änderst, konfiguriere JSONDecoder.dateDecodingStrategy passend zum API-Format.

Standardmäßig privat

Dein Dokument bleibt in diesem Browser. Tool Kumar parst und konvertiert Daten und erstellt Downloads auf deinem Gerät, ohne Konto und ohne Upload.

Swift-Modell aus JSON generieren: häufige Fragen

Generiert das Tool Klassen oder Structs?
Structs, die Codable implementieren, mit let-Eigenschaften und verschachtelten Modelltypen. Foundation wird importiert.
Wann werden CodingKeys ergänzt?
Wenn sich ein Eigenschaftsname ändert, erstellt der Konverter ein CodingKeys-Enum. Es ordnet Swift-Bezeichner den ursprünglichen JSON-Schlüsseln zu.
Wie wird null behandelt?
Vorgefundene null-Werte und fehlende Felder ergeben optionale Eigenschaften. Unbekannte oder gemischte Werte verwenden ein Codable-JSONValue-Enum, das nur bei Verwendung ergänzt wird.
Kann ich JSONDecoder direkt verwenden?
Ja. Kopiere die generierten Structs in dein Projekt und dekodiere Root.self aus Data. Prüfe vorher optionale Felder und Datumstypen.

Verwandte Tools

JSON in Dart konvertieren, Kotlin-Data-Class aus JSON generieren und JSON Schema generieren.