Incolla lo Swift a sinistra e clicca su "Converti" — lo trasformiamo in JSONIncolla il codice Swift

Cosa fa questo tool

Se ti è mai capitato di definire uno struct Swift, renderlo Codable e poi accorgerti che ti serviva solo il JSON — senza aprire un playground o un simulatore — questo tool fa esattamente quello. Incolli lo Swift qui e ti torna JSON valido senza toccare JSONEncoder, Xcode o Swift Package Manager. Gestisce una singola istanza di struct, un file intero con più tipi, o qualcosa con array annidati e optional — il risultato è lo stesso: un documento JSON pulito con ogni proprietà preservata.

Il convertitore segue il modo in cui i valori Swift vengono davvero serializzati da JSONEncoder. String, Int, Double, Bool mappano sui loro equivalenti JSON ovvi. Gli array [Item] diventano array JSON; i dizionari [String: V] diventano oggetti JSON. Optional<T> con nil diventa null in JSON (oppure viene omesso, a seconda della strategia dell'encoder). UUID viene fuori come stringa esadecimale standard, Date come stringa ISO-8601 e URL come stringa. Gli enum con raw value emettono il raw value — lo stesso comportamento che ottieni con Foundation.JSONEncoder.

I CodingKeys custom vengono rispettati — se rinomini una proprietà per il JSON (case shippingAddress = "shipping_address"), l'output usa la chiave rinominata. I tipi Codable annidati vengono espansi inline. Incolla più struct insieme e ognuno diventa una entry di primo livello nell'output. Se vuoi approfondire come Swift modella il JSON, su apple/swift trovi i sorgenti, e Hacking with Swift ha spiegazioni leggibili sul protocollo Codable.

Come si usa

Tre passaggi. Funziona allo stesso modo che tu incolli una singola istanza di struct o un file di model completo.

1

Incolla il tuo Swift (o carica l'esempio)

Butta lo Swift così com'è nell'editor di sinistra. Uno struct, una class, un enum con valori associati, più tipi o array e dizionari annidati — va tutto bene. Clicca su Carica esempio per vedere prima un caso realistico.

Non serve togliere import Foundation o gli attributi @available. Lascia la sintassi Swift intatta — il parser ci pensa.

2

Premi Converti

Clicca sul bottone verde Converti. Il tool legge lo Swift, preserva ogni proprietà e tipo annidato, ed emette il JSON in una sola passata. Mentre lavora gira un breve indicatore di caricamento.

3

Copia il JSON

Il pannello di destra si riempie di JSON indentato. Copialo nel tuo test URLSession, in una fixture MockURLProtocol, negli esempi OpenAPI o in un client REST. Fine del giro.

Quando ti salva davvero la giornata

Fixture per API iOS

Hai uno struct di richiesta per una chiamata <code>URLSession</code> e ti serve un payload JSON per Postman o per un test. Incolli lo struct, prendi il JSON, tiri dritto.

Risposte da mock server

Trasforma i tuoi tipi <code>Codable</code> di risposta in JSON da piazzare in un mock server, in <code>MockURLProtocol</code> o in un file di risposta registrata — senza nessuna chiamata a <code>JSONEncoder</code>.

Test backend Vapor / SwiftNIO

Un servizio Vapor con 20 tipi <code>Content</code>. Genera file JSON di seed per i test di integrazione senza scrivere una singola chiamata di encode.

Docs ed esempi OpenAPI

Genera esempi JSON per la tua spec OpenAPI o la reference delle API direttamente dai model reali, così la documentazione resta allineata.

Domande frequenti

Il tipo deve conformarsi a Codable?

Il tipo non deve essere davvero conforme nel tuo codice perché il tool funzioni — il convertitore legge la forma e produce il JSON direttamente. Nella tua app, Codable (o almeno Encodable) è il modo per ottenere lo stesso risultato a runtime tramite JSONEncoder.

Rispetta i CodingKeys custom?

Sì. Se il tuo tipo definisce enum CodingKeys: String, CodingKey con raw value custom (case shippingAddress = "shipping_address"), l'output usa quelle chiavi rinominate.

Come vengono gestiti Optional, Date e UUID?

Optional<T> con nil diventa null in JSON. Date esce come stringa ISO-8601 di default (come JSONEncoder.DateEncodingStrategy.iso8601). UUID diventa una stringa esadecimale standard. URL diventa una stringa.

E gli enum con valori associati?

Gli enum con raw value emettono direttamente il valore. Gli enum con valori associati escono come oggetto taggato — la stessa forma che Swift stesso produce quando codifichi un case con valori associati.

Il mio codice viene salvato?

Il codice viene mandato al backend per la conversione e non viene persistito — non logghiamo il payload. Dà un'occhiata al codice sensibile prima di incollarlo.

Funziona con model SwiftUI e property wrapper?

Sì — property wrapper tipo @Published vengono scartati fino al valore interno. Le classi ObservableObject con proprietà @Published si serializzano pulite. I tipi di view specifici di SwiftUI non sono dati serializzabili, ma qualsiasi model dietro le tue view va benissimo.

Altri strumenti che ti possono servire

Swift → JSON è solo un pezzo del puzzle. Questi ci stanno bene insieme: