Vai al contenuto
100% locale

JSON a struct Codable Swift

Trasforma un campione JSON in uno struct Swift conforme a Codable.

Ingresso
Uscita

JSON a struct Codable Swift

Incolla un campione JSON e questo strumento deduce la sua forma e genera uno struct Swift conforme a Codable, pronto per essere inserito in un progetto iOS, macOS o Swift lato server. Gli oggetti annidati diventano i loro stessi struct annidati, gli array diventano array Swift tipizzati, e un valore che a volte manca o è null diventa una proprietà optional con un punto interrogativo, in modo che il modello generato corrisponda a ciò che l'API effettivamente invia, non solo un campione fortunato.

Le opzioni controllano la forma del codice generato. Scegli struct o class per la dichiarazione, e let o var per la mutabilità delle proprietà. Attivando CodingKeys converte le chiavi JSON in snake_case come user_name nella convenzione camelCase di Swift e aggiunge l'enum CodingKeys corrispondente, in modo che la decodifica si allinei con i nomi di campo originali; lascialo disattivato per mantenere le chiavi JSON così come sono. Il livello di accesso determina se il tipo e le sue proprietà sono public o internal. I campi data come Date riconoscono le stringhe ISO-8601 e le tipizzano come Date invece di String, e l'indentazione ti permette di abbinare lo stile del tuo progetto con 2 spazi, 4 spazi o tabulazioni.

Un campo che mescola tipi non correlati in un array di campione (un valore che a volte è un numero e a volte una stringa) ricade su un piccolo wrapper AnyCodable che viene aggiunto all'output solo quando è effettivamente necessario, in modo che lo struct si compili invece di indovinare silenziosamente in modo errato. Le chiavi che non sono identificatori Swift validi, compresi emoji o chiavi che iniziano con una cifra, vengono disinfettate e rimappate tramite CodingKeys automaticamente in modo che nulla vada perso.

Tutto viene eseguito localmente nel tuo browser mentre digiti (nessun campione JSON viene mai caricato o inviato a un server), il che importa quando il campione proviene da una vera risposta API. Copia il Swift generato, scaricalo come file .txt, o rinvialo all'input per affinarlo ulteriormente.

FAQ

Come vengono gestiti gli oggetti JSON annidati?
Ogni oggetto annidato diventa il suo stesso struct Swift, denominato dopo la chiave sotto la quale è apparso, e referenziato dallo struct padre per tipo.
Cosa succede a un campo che a volte è null o manca?
Viene generato come una proprietà optional con un punto interrogativo, in modo che la decodifica non fallisca mai su una vera risposta che la omette.
Cosa fa esattamente l'opzione CodingKeys?
Quando è attivata, una chiave JSON in snake_case come created_at diventa la proprietà createdAt, e un enum CodingKeys la rimappa per la decodifica. Quando è disattivata, il nome della proprietà corrisponde alla chiave JSON il più vicino possibile secondo le regole degli identificatori Swift.
Può generare una classe invece di uno struct?
Sì. L'opzione Dichiarazione cambia ogni tipo generato tra struct e class mantenendo la stessa conformità Codable.
Il mio JSON viene caricato da qualche parte?
No. Lo struct viene generato interamente nel tuo browser — il tuo campione JSON non lascia mai il tuo dispositivo.