Convertire YAML in JSON

Qui converti YAML in JSON gratis e senza account: trascina il file qui sopra e in un paio di secondi il risultato è pronto da scaricare. La conversione avviene dentro il tuo browser, quindi il file non viene mai caricato. Funziona allo stesso modo su Windows, macOS e Linux e anche su iPhone e Android, e continua a funzionare anche se stacchi la connessione.

  • Dove gira Nel tuo browser. Il file non viene mai caricato.
  • Senza perdita Non si butta via niente. JSON conserva esattamente ciò che YAML teneva.
  • Limite di dimensione Fino a 100 MB per file, gratis e senza account.

Fino a 100 file alla volta. Formati diversi insieme non sono un problema.

A chi serve questa conversione

YAML è il formato con cui si scrivono a mano manifesti Kubernetes, pipeline CI, file di configurazione Docker Compose e impostazioni di decine di altri strumenti da riga di comando — è comodo da leggere e scrivere. JSON è quello che quasi ogni libreria, API o script si aspetta di ricevere in ingresso.

Chi arriva qui di solito ha già il file YAML pronto e deve darlo in pasto a qualcosa che parla solo JSON: un endpoint da testare, uno script Node che fa `JSON.parse`, un tool che valida schemi JSON Schema. Il resto di questa pagina riguarda che cosa sopravvive esattamente al passaggio.

Cosa fa davvero il convertitore

Il file YAML viene interpretato in una struttura dati JavaScript ordinaria — oggetti, array, stringhe, numeri, booleani, valori nulli — e quella stessa struttura viene scritta come testo JSON con un’indentazione di due spazi, la stessa leggibilità che aveva l’originale.

Tutto avviene con JavaScript puro eseguito nella pagina: non c’è un motore da scaricare a parte, e la conversione parte nell’istante in cui il file viene rilasciato.

Perché questa è quasi sempre una conversione senza perdita

A differenza di CSV, TSV o INI, che possono contenere solo tabelle o coppie piatte, JSON descrive esattamente lo stesso tipo di albero che YAML descrive: oggetti dentro oggetti, liste dentro oggetti, senza limite di profondità. Non c’è quindi bisogno di appiattire nulla, ed è per questo che la coppia è classificata come senza perdita nella maggior parte dei casi.

Le eccezioni sono poche e specifiche — gli alias YAML e i tag personalizzati, descritti più sotto — e riguardano solo i file che li usano davvero. Un file YAML scritto con la sintassi comune, senza quelle due funzionalità avanzate, arriva in JSON esattamente com’era.

I commenti non arrivano, in nessuna forma

YAML permette commenti che iniziano con `#`, spesso usati per spiegare perché un valore è impostato in un certo modo. Il parser li scarta già durante la lettura: nella struttura dati che arriva alla fase di scrittura non c’è nessun posto dove un commento potrebbe stare.

JSON, del resto, non ha una sintassi per i commenti, quindi anche se venissero letti non ci sarebbe modo di scriverli nel risultato. Chi ha un file YAML pesantemente commentato dovrebbe copiare quelle annotazioni altrove prima di convertire, se servono ancora dopo.

L’ordine delle chiavi resta quello del file originale

Le chiavi di un oggetto non vengono riordinate alfabeticamente né in nessun altro modo: la struttura dati mantiene l’ordine in cui il parser le ha incontrate leggendo il file, e la scrittura del JSON le emette in quello stesso ordine.

Per un file di configurazione dove l’ordine delle sezioni ha un valore anche solo documentale — prima le variabili globali, poi i servizi, poi le regole — questo significa che il JSON risultante si legge nello stesso ordine logico dell’YAML da cui viene.

Gli anchor e gli alias vengono espansi, non collegati

YAML permette di definire un valore una volta con un ancora (`&nome`) e riusarlo altrove con un riferimento (`*nome`), evitando di ripetere lo stesso blocco più volte nel file. Il parser risolve questi riferimenti espandendoli per intero nel punto in cui compaiono.

Il risultato è che il JSON contiene il valore ripetuto per esteso ovunque veniva referenziato, non un collegamento fra le due occorrenze — cosa che JSON, del resto, non saprebbe rappresentare comunque. Su un file che usa gli alias per evitare ripetizioni lunghe, questo può far crescere sensibilmente le dimensioni del risultato rispetto all’originale.

I tag personalizzati scompaiono

YAML permette di annotare un valore con un tag personalizzato, come `!Ref` o `!!python/object`, usato da certi strumenti per dare un significato speciale a quel valore oltre al suo tipo di base. Questi tag non vengono portati nel JSON: solo il valore sottostante sopravvive, senza l’annotazione che gli dava un significato diverso.

Per la configurazione più comune — Kubernetes, Docker Compose, GitHub Actions — questo non è mai un problema, perché nessuno di questi formati usa tag personalizzati. Vale la pena controllarlo solo con file YAML scritti per strumenti specifici che dichiaratamente li usano, come certi template CloudFormation.

Le date diventano stringhe nel formato ISO 8601

Un valore scritto in YAML nella forma di una data o di una data-ora — `2024-03-15` o `2024-03-15T10:30:00Z` — viene riconosciuto come tale dal parser e arriva nel JSON come una stringa in formato ISO 8601, lo stesso formato standard che quasi ogni libreria che legge JSON si aspetta.

Non arriva come un numero né in un formato specifico della macchina che ha fatto la conversione: il formato è lo stesso indipendentemente da dove gira il convertitore, il che rende il risultato prevedibile per chi lo consuma a valle.

Il file resta sul dispositivo, fino a cento insieme

La lettura e la scrittura avvengono interamente nella scheda del browser: il contenuto del file YAML non lascia mai il dispositivo, e lo si può verificare aprendo la scheda di rete degli strumenti per sviluppatori mentre la conversione avviene.

Ogni file può arrivare fino a 100 MB, e se ne possono convertire fino a cento in una sola volta, restituiti come un archivio ZIP con un JSON per ciascun file YAML originale — comodo per chi ha un’intera cartella di manifesti da migrare in un colpo solo.

Come convertire YAML in JSON

  1. Trascina il tuo file YAML su questa pagina, oppure fai clic per sceglierne uno.
  2. Scegli JSON come destinazione. La conversione avviene nel tuo browser e il file non viene caricato.
  3. Scarica il file JSON finito.

YAML o JSON: cosa cambia

YAML a confronto con JSON
YAMLJSON
Nome completoYAML Ain't Markup LanguageJavaScript Object Notation
Estensione del file.yaml, .yml.json
Tipo di mediaapplication/yamlapplication/json
Prima pubblicazione20012001
SpecificaYAML 1.2RFC 8259
LicenzaStandard apertoStandard aperto
Situazione attualeAttualeAttuale
Si apre nel browserNessun browserTutti i browser
Valutato al suo postoTOMLXML, NDJSON

Che cosa si perde

I commenti non sopravvivono. YAML permette di annotare un file e JSON non ha una sintassi per farlo, quindi ogni riga di spiegazione sparisce — e tocca proprio i file che si commentano: la configurazione che qualcun altro dovrà mantenere.

Che cosa resta

Non si scarta nulla. YAML e JSON salvano il contenuto senza perdita: la conversione cambia la confezione, non la qualità, e si può ripetere senza che i danni si accumulino.

Aprire il risultato

JSON si apre in qualsiasi browser attuale. YAML raggiunge ancora meno browser. Se il file va su una pagina web o in un modulo, di solito è tutto il motivo della conversione.

Visual Studio Code legge sia YAML sia JSON, quindi puoi confrontare il risultato con l'originale senza un secondo programma.

A che cosa serve ciascun formato

YAML è stato pubblicato nel 2001. È descritto in YAML 1.2, e vale la pena conoscerlo se il file deve sopravvivere allo strumento che lo ha scritto.

JSON risale al 2001, descritto in RFC 8259. Visual Studio Code, jq e Postman lo leggono.

Da YAML a JSON: domande frequenti

Il mio file YAML viene caricato da qualche parte?

No. Questa conversione avviene interamente nel tuo browser, quindi il file non esce dal tuo dispositivo. Puoi controllarlo da solo: apri la scheda di rete degli strumenti per sviluppatori e converti qualcosa. Vedrai la pagina stessa e le richieste di statistica e di pubblicità con cui questo servizio si paga, e nemmeno una che porti il tuo file.

Convertire YAML in JSON è gratis?

Sì. Senza account, senza filigrana e senza una quota giornaliera da consumare: gira sulla tua macchina, quindi puoi tornare quante volte vuoi. Il browser lavora file fino a 100 MB, 100 per volta.

Si perde qualità convertendo YAML in JSON?

No. JSON conserva lo stesso contenuto senza buttare via niente: il risultato è identico in qualità all’originale.

La conversione da YAML a JSON è senza perdita?

Non si scarta nulla. YAML e JSON salvano il contenuto senza perdita: la conversione cambia la confezione, non la qualità, e si può ripetere senza che i danni si accumulino.

I commenti sopravvivono da YAML a JSON?

I commenti non sopravvivono. YAML permette di annotare un file e JSON non ha una sintassi per farlo, quindi ogni riga di spiegazione sparisce — e tocca proprio i file che si commentano: la configurazione che qualcun altro dovrà mantenere.

Altro su questi formati