Swift links reinpasten und auf "Konvertieren" klicken — wir machen JSON drausSwift-Code reinpasten

Was dieses Tool macht

Wenn du schon mal einen Swift-struct definiert, ihn Codable gemacht hast und dann gemerkt hast, dass du einfach nur das JSON brauchst — ohne extra ein Playground oder einen Simulator hochzufahren —, genau das macht dieses Tool. Swift hier reinpasten und gültiges JSON zurückbekommen, ohne JSONEncoder, Xcode oder den Swift Package Manager anzufassen. Egal ob eine einzelne struct-Instanz, eine ganze Datei mit mehreren Typen oder etwas mit verschachtelten Arrays und Optionals — das Ergebnis ist dasselbe: ein sauberes JSON-Dokument, in dem jede Property erhalten bleibt.

Der Converter folgt dem, wie Swift-Werte tatsächlich über JSONEncoder serialisiert werden. String, Int, Double, Bool mappen auf ihre offensichtlichen JSON-Pendants. [Item]-Arrays werden zu JSON-Arrays, [String: V]-Dictionaries zu JSON-Objekten. Optional<T> mit nil wird zu JSON null (oder weggelassen, je nach Encoder-Strategie). UUID wird zu einem Standard-Hex-String, Date zu einem ISO-8601-String und URL zu einem String. Enums mit raw value geben den raw value aus — dasselbe Verhalten, das du mit Foundation.JSONEncoder bekommst.

Custom CodingKeys werden respektiert — wenn du eine Property fürs JSON umbenennst (case shippingAddress = "shipping_address"), nutzt die Ausgabe den umbenannten Key. Verschachtelte Codable-Typen werden inline expandiert. Mehrere structs auf einmal reinpasten, und jeder wird zu einem Top-Level-Eintrag in der Ausgabe. Wenn du tiefer einsteigen willst, wie Swift JSON modelliert: bei apple/swift liegt der Source Code, und Hacking with Swift hat lesbare Erklärungen zum Codable-Protokoll.

So benutzt du es

Drei Schritte. Egal, ob du eine struct-Instanz reinpastest oder eine komplette Model-Datei — Ablauf ist derselbe.

1

Swift reinpasten (oder Beispiel laden)

Pack dein Swift einfach in den linken Editor. Ein struct, eine class, ein enum mit associated values, mehrere Typen oder verschachtelte Arrays und Dictionaries — geht alles. Klick auf Beispiel laden, um erst ein realistisches Beispiel zu sehen.

Du musst weder import Foundation entfernen noch @available-Attribute rausnehmen. Lass die Swift-Syntax intakt — der Parser kommt damit klar.

2

Auf Konvertieren klicken

Klick auf den grünen Konvertieren-Button. Das Tool liest das Swift, behält jede Property und jeden verschachtelten Typ und schiebt das JSON in einem Rutsch raus. Während es arbeitet, läuft kurz ein Ladeindikator.

3

JSON kopieren

Das rechte Panel füllt sich mit eingerücktem JSON. Kopier es in deinen URLSession-Test, in eine MockURLProtocol-Fixture, in deine OpenAPI-Beispiele oder in einen REST-Client. Das war's.

Wann das wirklich was bringt

iOS-API-Fixtures

Du hast einen Request-struct für einen <code>URLSession</code>-Call und brauchst einen JSON-Payload für Postman oder einen Test. Struct reinpasten, JSON abgreifen, weitermachen.

Mock-Server-Responses

Verwandle deine Response-<code>Codable</code>-Typen in JSON, das du in einen Mock-Server, <code>MockURLProtocol</code> oder eine aufgezeichnete Response-Datei kippen kannst — ohne einen einzigen <code>JSONEncoder</code>-Call.

Vapor- / SwiftNIO-Backend-Tests

Ein Vapor-Service mit 20 <code>Content</code>-Typen. Generier JSON-Seed-Dateien für Integration-Tests, ohne einen einzigen Encode-Call zu schreiben.

Docs und OpenAPI-Beispiele

JSON-Beispiele für deine OpenAPI-Spec oder API-Reference direkt aus deinen echten Models generieren, damit die Docs synchron bleiben.

Häufige Fragen

Muss der Typ Codable konform sein?

Der Typ muss in deinem Code nicht wirklich konform sein, damit das Tool läuft — der Converter liest die Struktur und produziert das JSON direkt. In deiner App ist Codable (oder zumindest Encodable) der Weg, dasselbe Ergebnis zur Laufzeit über JSONEncoder zu bekommen.

Berücksichtigt er custom CodingKeys?

Ja. Wenn dein Typ enum CodingKeys: String, CodingKey mit custom raw values definiert (case shippingAddress = "shipping_address"), nutzt die Ausgabe diese umbenannten Keys.

Wie werden Optionals, Dates und UUIDs behandelt?

Optional<T> mit nil wird zu JSON null. Date kommt standardmäßig als ISO-8601-String raus (entspricht JSONEncoder.DateEncodingStrategy.iso8601). UUID wird ein Standard-Hex-String. URL wird ein String.

Was ist mit Enums mit associated values?

Enums mit raw value geben den Wert direkt aus. Enums mit associated values kommen als getaggtes Objekt raus — dieselbe Form, die auch Swift selbst produziert, wenn du einen Case mit associated values encodest.

Wird mein Code gespeichert?

Dein Code wird zur Konvertierung ans Backend geschickt und nicht persistiert — wir loggen den Payload nicht. Sensiblen Code vor dem Einfügen lieber nochmal anschauen.

Klappt das auch mit SwiftUI-Models und Property Wrappern?

Ja — Property Wrapper wie @Published werden auf ihren inneren Wert entpackt. ObservableObject-Klassen mit @Published-Properties serialisieren sauber. SwiftUI-spezifische View-Typen sind keine serialisierbaren Daten, aber jedes Model hinter deinen Views ist Freiwild.

Andere Tools, die du vielleicht brauchst

Swift zu JSON ist nur ein Puzzlestück. Diese hier passen gut dazu: