Typgenerierung

JSON zu SwiftCodable aus API-Beispielen

Zwei unterschiedliche Datensätze zeigen, welche Eigenschaften optional werden.

JSON zu Swift

JSON-Eingabe

Analyse und Generierung erfolgen in diesem Browser. Eingaben werden weder hochgeladen noch gespeichert.

Erzeugter Quelltext

Generierungsoptionen

Int64 / Decimal; geprüft mit Swift 6.3.1, macOS 26. makeJSONDecoder() verwenden und Zielsystem prüfen.

Das Wurzelarray definiert Element Root; [Root].self dekodieren.

2 Structs · 2 optionale Eigenschaften

JSON zu Swift hilft beim Entwurf von Modellen aus echten API-Antworten. Ergänzen Sie Datensätze mit fehlenden Schlüsseln: Ein vollständig ausgefülltes Beispiel verrät nicht, welche Felder tatsächlich ausbleiben können.

Der Swift Struct Konverter liefert Codable Modelle als Ausgangspunkt. CodingKeys und optionale Felder beschreiben beobachtete Daten; verbindliche Anforderungen muss weiterhin Ihr API-Vertrag festlegen.

Warum JSON zu Swift verwenden?

Alle Datensätze berücksichtigen

JSON zu Swift führt Objekte an derselben Arrayposition zusammen. Fehlende Schlüssel und null ergeben optionale Eigenschaften; durchgehend vorhandene Werte behalten einen konkreten Typ.

Zwei Objektkarten werden zu einem Modell mit einer hohlen Markierung für ein optionales Feld zusammengeführt.

Datumstypen bewusst wählen

Zeitangaben bleiben zunächst Strings. Erst die ISO-Option verbindet gültige vollständige Zeitstempel mit Date und einem passenden Decoder; andere Zeichenfolgen bleiben unverändert.

Eine Zeitstempelkarte verzweigt zum erhaltenen String und über einen gewählten Pfad zu einer Uhr.

Den Lesevertrag festlegen

01

Gegensätzliche Beispiele sammeln

Erlaubt sind ein Objekt oder ein nicht leeres Array aus Objekten. Bei einem Wurzelarray entsteht das Elementmodell Root; dekodieren Sie [Root].self. Auch verschachtelte Arrays werden vollständig untersucht.

02

Schlüssel und Zeitangaben prüfen

Lassen Sie CodingKeys für snake_case und ungewöhnliche Schlüssel aktiv. Wählen Sie camelCase oder das Beibehalten gültiger Namen. ISO-Erkennung benötigt eine Zeitzone und höchstens drei Nachkommastellen der Sekunden.

03

Ersetzungen bestätigen

Nach 350 ms Ruhe wird automatisch erzeugt. Im manuellen Modus funktionieren Schaltfläche und Ctrl/Cmd+Enter. Änderungen sperren veraltete Exporte sofort. Beispiel und Leeren zeigen vorher Zeichenzahlen; nach dem Anwenden lässt sich einmal zurückgehen.

Inhalt der Quelldatei

Zusammenhängende Strukturen

JSON zu Swift erzeugt var-Eigenschaften und Codable-Structs in einer Datei. Nicht leere Unterobjekte erhalten Hilfsstrukturen, leere Objekte Dictionaries. Gemischte Werte verwenden ein eigenes rekursives JSONValue-Enum statt Any.

Zahlen ohne JavaScript-Umweg

Reine Ganzzahlgruppen im vorzeichenbehafteten 64-Bit-Bereich erhalten Int64. Dezimal- und Exponentialschreibweisen sowie größere Ganzzahlen führen zu Foundation.Decimal, auch in gemeinsam abgeleiteten Zahlengruppen. Die ursprünglichen Tokens werden direkt gelesen.

Optional nach Swift-Semantik

Beobachtete fehlende Schlüssel oder null machen Eigenschaften optional; alternativ gilt dies für alle. Synthetisiertes Codable liest fehlend und null jeweils als nil und lässt nil-Eigenschaften beim Kodieren normalerweise weg.

Passende Decodereinstellungen

makeJSONDecoder() behält die normale Schlüsselstrategie bei. Bei Date probiert es ISO8601DateFormatter mit und ohne Sekundenbruchteil. Zum Schreiben von ISO-Text muss JSONEncoder separat konfiguriert werden.

Grenzen vor dem Einsatz

Kein vollständiges Schema
Keine Verarbeitung von JSON Schema oder OpenAPI, keine geratenen Enums, class-, Core-Data-, SwiftData- oder Netzwerkmodelle. Unbekannte Schlüssel werden beim synthetisierten Dekodieren ignoriert. Die Kalenderprüfung bei der Ableitung macht den exportierten Helfer nicht zum fachlichen Datumsprüfer.
Bewusst begrenzte Zahlen
Nach Entfernen führender und nachgestellter Nullen höchstens 38 signifikante Ziffern. Der ursprüngliche Exponent liegt zwischen −128 und 127; Exponent minus Nachkommastellen ist mindestens −128; die normalisierte Größenordnung höchstens 127. Das gilt auch in Mischwerten und für die Schreibweise der Zahl 0.
Auf dem Zielsystem prüfen
Kompilierung und Zahlenrückläufe wurden mit Swift 6.3.1 auf macOS 26 sowie im Swift-5-Sprachmodus geprüft, nicht mit alten Compilern. Älteres Foundation kann Decimal-Präzision verlieren. Testen Sie die Zielplattform. Schreibweisen wie 1.0 und 1e0 bleiben nicht erhalten.
Date speichert einen Zeitpunkt
Nur gültige vollständige Zeitstempel mit Zeitzone und bis zu drei Sekundenbruchstellen werden erkannt, wenn alle nicht-null Strings an dieser Stelle passen. Reine Daten, lokale Zeiten, ungültige und präzisere Werte bleiben String. Ursprüngliche Zone und Formatierung gehen verloren. Die Erkennung gilt für 1583–9999; frühere Zeitstempel bleiben wegen historischer Kalenderabweichungen String. Auch der Helfer weist Jahre vor 1583 ab.
Schlüssel müssen unterscheidbar sein
Ohne CodingKeys scheitert jede notwendige Umbenennung. Reservierte Wörter, Kollisionen und die Eigenschaft CodingKeys werden umbenannt. Einzelne Surrogates in Schlüsseln oder Werten und unterschiedliche NFC-äquivalente Schlüssel innerhalb eines Objekts oder zusammengeführten Modells werden abgewiesen.
Strikte Eingabe mit Budget
Keine Kommentare, Endkommas, doppelten Schlüssel, Reparatur, Dateiimporte, URL-Abfragen oder Swift-Ausführung im Browser. Grenzen: 500.000 Eingabezeichen, 50.000 Knoten, Tiefe 40, 100 Felder je zusammengeführtem Objekt, 200 Structs, 1.000 Zeichen pro Schlüssel/Zahl und 1.000.000 Ausgabezeichen.

Fragen zu JSON zu Swift

Kann ich verschachtelte Objekte und Arrays umwandeln?

Ja. Nicht leere Unterobjekte werden Hilfsstrukturen; Arrays führen alle Elemente zusammen. JSON zu Swift erzeugt bei einem Wurzelarray das Elementmodell, das Sie als [Root].self dekodieren. Leere Objekte und gemischte Werte erhalten allgemeinere Codable-Typen.

Gibt es eine Größenbegrenzung für die Eingabe?

Ja. Die Eingabe darf 500.000 Zeichen und 50.000 Knoten enthalten. Zusätzlich gelten Tiefe 40, 100 Felder pro zusammengeführtem Objekt und 200 Strukturen. Zahlen haben ein eigenes konservatives Präzisionsbudget; Überschreitungen werden gemeldet.

Funktioniert das Werkzeug auf Mobilgeräten?

Ja, die Eingabe und Ausgabe stehen auf schmalen Bildschirmen untereinander. Sie können Einstellungen ändern und den aktuellen Quelltext kopieren oder herunterladen. Swift selbst wird nicht im mobilen Browser ausgeführt.

Warum wird eine Eigenschaft optional?

Ein Schlüssel fehlt in einem anderen Beispiel oder enthält null. Mit der Option für alle Eigenschaften wird jede optional. Swift liest fehlend und null gleichermaßen als nil; eine Dreizustandslogik braucht eigenen Codable-Code.

Wie bleiben Dezimalzahlen beim Dekodieren genau?

Die Tokens werden ohne JavaScript Number gelesen und als Int64 oder Decimal modelliert. Zahlen wurden auf Swift 6.3.1/macOS 26 unabhängig dezimal verglichen. Foundation unterscheidet sich zwischen Betriebssystemversionen; prüfen Sie Ihre tatsächliche Zielversion.

Fehlt ein wichtiger Fall bei der Typableitung?

Modelle mit echten Antworten prüfen

Verwenden Sie JSON zu Swift mit fehlenden Feldern, null und realistischen Zahlen. Kompilieren und dekodieren Sie die Datei anschließend auf Ihrer Zielplattform.