DT Dev Tools

JSON till Swift — Generera Codable-typer

Konvertera JSON till Swift Codable-structs eller klasser online med CodingKeys, optionals och nĂ€stlade typer. Redo för JSONDecoder – gratis och privat.

🔒 Körs helt i din webblĂ€sare — ingenting laddas upp

Annons

Swift Codable-modeller frÄn JSON

Swifts Codable-protokoll gör JSON-avkodning till en enda rad — nĂ€r du vĂ€l har typer som matchar payloaden exakt. Den hĂ€r JSON till Swift-konverteraren genererar de typerna frĂ„n ett exempel. Varje objekt blir en struct (eller class) som implementerar Codable, nycklar blir camelCase-egenskaper, nĂ€stlade objekt blir egna typer, arrayer blir typade Swift-arrayer och vĂ€rden som saknas eller Ă€r null i nĂ„gon del av exemplet blir optionals. Explicita CodingKeys-enums kopplar varje egenskap tillbaka till den ursprungliga JSON-nyckeln, sĂ„ att API:er med snake_case avkodas utan nĂ„gon egen strategi.

Motorn bakom Àr quicktype, som slÄr ihop alla element i varje array innan typerna infereras. Ett fÀlt som bara finns i vissa objekt blir ÀndÄ en optional egenskap, vilket undviker det fruktade avkodningsfelet keyNotFound vid körning.

Structs, klasser och hjÀlpfunktioner

Structs Ă€r standard eftersom vĂ€rdetyper Ă€r idiomatiska för modeller i SwiftUI och i det mesta av modern iOS- och macOS-kod. Byt till klasser nĂ€r du behöver referenssemantik eller Objective-C-interop. Som standard innehĂ„ller resultatet ocksĂ„ bekvĂ€mlighetshjĂ€lpare — initialiserare frĂ„n JSON-data och strĂ€ngar, metoderna jsonData() och jsonString() samt en with(...)-mutator — som gör modellerna lĂ€tta att anvĂ€nda i tester och förhandsvisningar. Markera Types only om du föredrar en minimal fil med enbart Codable-deklarationerna.

Tips innan du klistrar in i Xcode

AnvĂ€nd ett rikt exempel med flera arrayelement och ifyllda valfria fĂ€lt. Byt namn pĂ„ rottypen frĂ„n Root till nĂ„got meningsfullt som FeedResponse; nedladdningen anvĂ€nder det namnet. ÖvervĂ€g dĂ€refter att göra om strĂ€ngfĂ€lt med kĂ€nda vĂ€rden till enums, anvĂ€nda Date med en matchande dateDecodingStrategy och markera egenskaper som var dĂ€r du behöver Ă€ndra dem. Allt sker lokalt i din webblĂ€sare, sĂ„ privata API-svar laddas aldrig upp.

Hur man anvÀnder

  1. Klistra in JSONKlistra in ett JSON-svar eller ladda exemplet.
  2. VÀlj stilVÀlj struct eller class, CodingKeys och om hjÀlpfunktioner ska ingÄ.
  3. Kopiera till XcodeKopiera Swift-koden eller ladda ner en .swift-fil till ditt projekt.

Vanliga frÄgor

Är de genererade typerna Codable?
Ja. Varje struct eller class implementerar Codable, sÄ du kan avkoda den med JSONDecoder direkt.
Vad anvÀnds explicita CodingKeys till?
De kopplar Swifts camelCase-egenskapsnamn till de exakta JSON-nycklarna. BehÄll dem nÀr nycklarna anvÀnder snake_case eller andra namn som inte Àr giltiga Swift-identifierare.
Kan jag generera klasser i stÀllet för structs?
Ja. Byt Types till class om du behöver referenssemantik, till exempel för Core Data eller Objective-C-interop.
Laddas min JSON upp?
Nej. All konvertering körs i din webblÀsare; ingenting skickas till en server.
Annons