Hoppa till innehåll
100% lokalt

JSON till Swift Codable Struct

Omvandla ett JSON-exempel till en Swift-struct som implementerar Codable.

Inmatning
Utmatning

JSON till Swift Codable Struct

Klistra in ett JSON-exempel och det här verktyget härleder dess form och genererar en Swift-struct som följer Codable, redo att släppa in i ett iOS-, macOS- eller serversidans Swift-projekt. Kapslade objekt blir egna kapslade structs, matriser blir typade Swift-matriser, och ett värde som ibland saknas eller är null blir en valfri egenskap med ett frågetecken — så den genererade modellen matchar det som API:n faktiskt skickar, inte bara ett lyckosamt exempel.

Alternativen styr formen på den genererade koden. Välj struct eller class för deklarationen och let eller var för egenskapsmutabilitet. Om du aktiverar CodingKeys konverteras snake_case JSON-nycklar som user_name till Swifts camelCase-konvention och motsvarande CodingKeys-enum läggs till, så avkodning fortfarande stämmer överens med de ursprungliga fältnamnen. Lämna det inaktiverat för att behålla JSON-nycklarna ordagrant. Åtkomstnivå bestämmer om typen och dess egenskaper är public eller internal, datum som Date känner igen ISO-8601-strängar och skriver dem som Date istället för String, och indragning låter dig matcha ditt projekts stil med 2 mellanslag, 4 mellanslag eller tabbar.

Ett fält som blandar orelaterade typer i en exempelmatris — ett värde som ibland är ett tal och ibland en sträng — faller tillbaka på en liten AnyCodable-wrapper som endast läggs till i utdatan när det faktiskt behövs, så strukturen kompileras fortfarande istället för att tyst gissa fel. Nycklar som inte är giltiga Swift-identifierare, inklusive emoji eller nycklar som börjar med en siffra, saneras och mappas tillbaka genom CodingKeys automatiskt så ingenting går förlorat.

Allt körs lokalt i din webbläsare när du skriver — ingen JSON-exempel överförs eller skickas till en server någonsin, vilket spelar roll när exemplet kommer från ett verkligt API-svar. Kopiera den genererade Swift, ladda ned den som en .txt-fil, eller skicka den tillbaka till inmatningen för ytterligare förfining.

FAQ

Hur hanteras kapslade JSON-objekt?
Varje kapslat objekt blir sin egen Swift-struct, uppkallad efter nyckeln den dök upp under, och refereras från parent struct efter typ.
Vad händer med ett fält som ibland är null eller saknas?
Den genereras som en valfri egenskap med ett eftersläpande frågetecken, så avkodning kraschar aldrig på ett verkligt svar som utelämnar det.
Vad gör CodingKeys-alternativet egentligen?
När det är på, blir en snake_case JSON-nyckel som created_at egenskapen createdAt, och ett CodingKeys-enum mappar tillbaka det för avkodning. När det är av, matchar egenskapsnamnet JSON-nyckeln så långt Swifts identifierarregler tillåter.
Kan det generera en class istället?
Ja. Alternativet Deklaration växlar varje genererad typ mellan struct och class samtidigt som samma Codable-överensstämmelse behålls.
Laddas min JSON upp någonstans?
Nej. Strukturen genereras helt i din webbläsare — ditt JSON-exempel lämnar aldrig din enhet.