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
- Füge eine repräsentative Antwort ein, auch mit Datensätzen, deren Felder sich unterscheiden.
- Prüfe die generierte Ausgabe und ändere bei Bedarf den Stammnamen.
- 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.