Swift til JSON-konverter
Indsæt Swift-structs eller Codable-typer. Få ren JSON tilbage.
Hvad værktøjet gør
Hvis du nogensinde har defineret en Swift-struct, gjort den Codable og så opdaget at du bare havde brug for JSON — uden at fyre en playground eller simulator op — så gør det her værktøj præcis det. Indsæt Swift her og få gyldig JSON tilbage uden at røre JSONEncoder, Xcode eller Swift Package Manager. Det håndterer en enkelt struct-instans, en hel fil med flere typer, eller noget med nestede arrays og optionals — resultatet er det samme: et rent JSON-dokument hvor hver property er bevaret.
Konverteren følger hvordan Swift-værdier rent faktisk serialiseres gennem JSONEncoder. String, Int, Double, Bool mapper til deres oplagte JSON-modstykker. [Item]-arrays bliver til JSON-arrays; [String: V]-dictionaries bliver til JSON-objekter. Optional<T> med nil bliver til JSON null (eller udelades, afhængigt af encoder-strategien). UUID kommer ud som en standard hex-streng, Date som en ISO-8601-streng og URL som en streng. Enums med raw value udsender raw value — samme opførsel som du får med Foundation.JSONEncoder.
Custom CodingKeys bliver respekteret — hvis du har omdøbt en property til JSON (case shippingAddress = "shipping_address"), bruger outputtet den omdøbte nøgle. Nestede Codable-typer foldes ud inline. Indsæt flere structs ad gangen, og hver bliver en top-level entry i outputtet. Vil du grave dybere i hvordan Swift modellerer JSON, så ligger kildekoden i apple/swift, og Hacking with Swift har rigtig læsbare forklaringer af Codable-protokollen.
Sådan bruger du det
Tre trin. Virker ens om du indsætter en struct-instans eller en hel model-fil.
Indsæt din Swift (eller indlæs eksemplet)
Smid din Swift ind som den er i venstre editor. En struct, en class, en enum med associated values, flere typer eller nestede arrays og dictionaries — alt duer. Klik på Indlæs eksempel for at se et realistisk eksempel først.
Du behøver ikke fjerne import Foundation eller @available-attributter. Lad Swift-syntaksen stå — parseren klarer det.
Tryk Konvertér
Klik på den grønne Konvertér-knap. Værktøjet læser Swift-koden, bevarer hver property og nestet type og spytter JSON ud i ét hug. Imens kører en kort loading-indikator.
Kopiér JSON-en
Højre panel fyldes med indrykket JSON. Kopiér det ind i din URLSession-test, en MockURLProtocol-fixture, dine OpenAPI-eksempler eller en REST-klient. Det er hele flowet.
Hvornår det faktisk redder dig
iOS API-fixtures
Du har en request-struct til et <code>URLSession</code>-kald og skal bruge en JSON-payload til Postman eller en test. Indsæt structen, hiv JSON-en ud, gå videre.
Mock server-responses
Lav dine response-<code>Codable</code>-typer om til JSON som du kan smide i en mock server, <code>MockURLProtocol</code> eller en optaget response-fil — helt uden et eneste <code>JSONEncoder</code>-kald.
Vapor- / SwiftNIO-backendtests
En Vapor-service med 20 <code>Content</code>-typer. Generer JSON-seed-filer til integrationstests uden at skrive et eneste encode-kald.
Docs og OpenAPI-eksempler
Generer JSON-eksempler til din OpenAPI-spec eller API-reference direkte fra dine rigtige models, så dokumentationen holdes i sync.
Almindelige spørgsmål
Skal typen overholde Codable?
Typen behøver ikke faktisk overholde Codable i din kode for at værktøjet virker — konverteren læser formen og producerer JSON direkte. I din egen app er Codable (eller i hvert fald Encodable) måden du får samme resultat ud i runtime via JSONEncoder.
Respekterer den custom CodingKeys?
Ja. Hvis din type definerer enum CodingKeys: String, CodingKey med custom raw values (case shippingAddress = "shipping_address"), bruger outputtet de omdøbte nøgler.
Hvordan håndteres Optionals, Dates og UUIDs?
Optional<T> med nil bliver JSON null. Date kommer ud som ISO-8601-streng som default (matcher JSONEncoder.DateEncodingStrategy.iso8601). UUID bliver en standard hex-streng. URL bliver en streng.
Og enums med associated values?
Enums med raw value udsender værdien direkte. Enums med associated values kommer ud som et tagget objekt — samme form som Swift selv producerer, når du encoder et case med associated values.
Bliver min kode gemt?
Din kode sendes til backend til konverteringen og bliver ikke gemt — vi logger ikke payloaden. Kig lige følsom kode igennem før du indsætter den.
Virker det for SwiftUI-models og property wrappers?
Ja — property wrappers som @Published pakkes ud til deres indre værdi. ObservableObject-klasser med @Published-properties serialiserer pænt. SwiftUI-specifikke view-typer er ikke serialiserbar data, men enhver model der ligger bag dine views er fair game.
Andre værktøjer du måske får brug for
Swift til JSON er kun ét stykke af puslespillet. De her passer godt sammen med det: