Swift till JSON-konverterare
Klistra in Swift-structs eller Codable-typer. Få tillbaka ren JSON.
Vad verktyget gör
Om du nånsin har definierat en Swift-struct, gjort den Codable och insett att du bara behöver JSON:en — utan att starta en playground eller en simulator — så är det exakt det här verktyget gör. Klistra in Swift här och få tillbaka giltig JSON utan att röra JSONEncoder, Xcode eller Swift Package Manager. Det funkar för en enskild struct-instans, en hel fil med flera typer, eller något med nästlade arrays och optionals — resultatet är detsamma: ett rent JSON-dokument där varje property är bevarad.
Konverteraren följer hur Swift-värden faktiskt serialiseras via JSONEncoder. String, Int, Double, Bool mappar till sina självklara JSON-motsvarigheter. [Item]-arrays blir JSON-arrays; [String: V]-dictionaries blir JSON-objekt. Optional<T> med nil blir JSON null (eller utelämnas, beroende på encoder-strategin). UUID kommer ut som en vanlig hex-sträng, Date som en ISO-8601-sträng, och URL som en sträng. Enums med raw value ger tillbaka raw value — samma beteende som du får med Foundation.JSONEncoder.
Anpassade CodingKeys respekteras — om du döpt om en property för JSON (case shippingAddress = "shipping_address") använder outputen den omdöpta nyckeln. Nästlade Codable-typer expanderas inline. Klistra in flera structs på en gång och var och en blir en top-level-entry i outputen. Vill du gräva djupare i hur Swift modellerar JSON så har apple/swift källkoden, och Hacking with Swift har riktigt läsbara förklaringar av Codable-protokollet.
Så använder du det
Tre steg. Funkar likadant oavsett om du klistrar in en struct-instans eller en hel model-fil.
Klistra in din Swift (eller ladda exemplet)
Släng in Swift som det är i vänstra editorn. En struct, en class, en enum med associated values, flera typer eller nästlade arrays och dictionaries — allt går bra. Klicka på Ladda exempel för att se ett realistiskt exempel först.
Du behöver inte ta bort import Foundation eller @available-attribut. Låt Swift-syntaxen vara — parsern fixar det.
Tryck Konvertera
Klicka på den gröna Konvertera-knappen. Verktyget läser Swift:en, bevarar varje property och nästlad typ och spottar ut JSON i en svepning. Under tiden snurrar en kort laddningsindikator.
Kopiera JSON:en
Högra panelen fylls med indenterad JSON. Kopiera in det i ditt URLSession-test, en MockURLProtocol-fixture, dina OpenAPI-exempel eller en REST-klient. Det är hela loopen.
När det faktiskt räddar dagen
iOS API-fixtures
Du har en request-struct för ett <code>URLSession</code>-anrop och behöver en JSON-payload till Postman eller ett test. Klistra in structen, ta JSON:en, gå vidare.
Mock server-responses
Gör om dina response-<code>Codable</code>-typer till JSON som du kan slänga in i en mock server, <code>MockURLProtocol</code> eller en inspelad response-fil — utan ett enda <code>JSONEncoder</code>-anrop.
Vapor- / SwiftNIO-backendtester
En Vapor-tjänst med 20 <code>Content</code>-typer. Generera JSON-seed-filer för integrationstester utan att skriva ett enda encode-anrop.
Docs och OpenAPI-exempel
Generera JSON-exempel till din OpenAPI-spec eller API-referens rakt från dina riktiga models, så att dokumentationen hänger med.
Vanliga frågor
Måste typen följa Codable?
Typen behöver inte faktiskt följa Codable i din kod för att verktyget ska funka — konverteraren läser formen och producerar JSON:en direkt. I din egen app är Codable (eller åtminstone Encodable) hur du får samma resultat i runtime via JSONEncoder.
Respekterar den anpassade CodingKeys?
Ja. Om din typ definierar enum CodingKeys: String, CodingKey med anpassade raw values (case shippingAddress = "shipping_address") använder outputen de omdöpta nycklarna.
Hur hanteras Optionals, Dates och UUIDs?
Optional<T> med nil blir JSON null. Date kommer ut som en ISO-8601-sträng som default (matchar JSONEncoder.DateEncodingStrategy.iso8601). UUID blir en vanlig hex-sträng. URL blir en sträng.
Och enums med associated values?
Enums med raw value ger tillbaka värdet direkt. Enums med associated values kommer ut som ett taggat objekt — samma form som Swift själv producerar när du enkodar ett case med associated values.
Sparas min kod?
Din kod skickas till backend för konvertering och sparas inte — vi loggar inte payloaden. Kolla igenom känslig kod innan du klistrar in.
Funkar det för SwiftUI-models och property wrappers?
Ja — property wrappers som @Published packas upp till sitt inre värde. ObservableObject-klasser med @Published-properties serialiseras rent. SwiftUI-specifika view-typer är inte serialiserbar data, men varje model bakom dina views är helt okej.
Andra verktyg du kan behöva
Swift till JSON är bara en pusselbit. Dessa spelar bra ihop med det: