← Tutti gli strumenti

Convertitore JSON in YAML

Converti JSON in YAML e YAML in JSON all'istante nel browser. Solo locale e privato, con note su commenti, tipi, indentazione e ancore.

Converti JSON in YAML e YAML in JSON nel tuo browser

JSON e YAML descrivono lo stesso tipo di dati — mappe annidate, liste, stringhe, numeri e booleani — ma hanno un aspetto molto diverso e vengono usati in contesti diversi. Se lavori con API, file container o pipeline CI, prima o poi hai bisogno di trasformare l'uno nell'altro. Questa pagina esegue quella conversione in entrambe le direzioni, interamente nel tuo browser, quindi i dati che incolli non lasciano mai la tua macchina.

Astratte parentesi di luce che si trasformano in livelli di configurazione indentati su uno sfondo indaco scuro
La struttura JSON che si apre nella YAML basata sull'indentazione.

Cos'è JSON e dove vive

JSON (JavaScript Object Notation) è un formato rigoroso con parentesi e graffe pensato prima per le macchine. Ogni oggetto è racchiuso in {}, ogni array in [], le chiavi e i valori stringa sono tra virgolette doppie, e gli elementi sono separati da virgole. È il formato wire predefinito per le API REST e GraphQL, il corpo della maggior parte dei webhook, la forma dei documenti NoSQL e ciò che restituisce la chiamata fetch. Quasi ogni linguaggio lo analizza nativamente, il che è esattamente il motivo per cui ha vinto nel livello API: JSON.parse in JavaScript, json nella libreria standard Python e equivalenti ovunque. Il compromesso è che JSON è prolisso da scrivere a mano e non ammette commenti, quindi è un formato inadatto per i file che un umano modifica tutto il giorno.

Cos'è YAML e dove vive

YAML (YAML Ain't Markup Language) è stato progettato per la priorità opposta: prima gli umani. Elimina le parentesi e le virgolette, usa l'indentazione per esprimere la nidificazione e permette di scrivere commenti con #. Quella leggibilità è il motivo per cui è diventato la lingua franca della configurazione. I file Docker Compose, i manifest Kubernetes, i workflow GitHub Actions e GitLab CI, i playbook Ansible e innumerevoli file di configurazione delle applicazioni sono tutti YAML. Un tipico documento YAML è notevolmente più corto del JSON equivalente e molto più facile da confrontare in una pull request. Il costo di quella eleganza è la fragilità, ed è qui che la conversione diventa interessante.

Le differenze chiave che contano

Tre differenze guidano quasi ogni decisione di conversione. Prima, gli spazi bianchi sono significativi in YAML e privi di significato in JSON. YAML usa gli spazi — mai le tabulazioni — per denotare la struttura, quindi un singolo spazio mal allineato può cambiare silenziosamente il significato di un documento. JSON non si preoccupa affatto dell'indentazione. Seconda, YAML supporta i commenti e JSON no. Qualsiasi commento # in YAML scompare semplicemente quando si produce JSON, perché non c'è posto dove metterlo. Terza, YAML ha una tipizzazione implicita più ricca. Legge felicemente date, timestamp e null in varie forme, e deduce i tipi dai valori non quotati. JSON ha un piccolo insieme di tipi espliciti senza ambiguità. Nota anche che JSON è tecnicamente un sottoinsieme di YAML 1.2, motivo per cui il JSON valido di solito viene analizzato correttamente come YAML, ma il contrario non è garantito.

Un albero di dati annidato che si converte tra due formati strutturati luminosi in ciano e oro
Lo stesso albero di dati espresso come due formati.

Insidie di conversione da tenere d'occhio

Il round-tripping non è sempre senza perdite, e vale la pena sapere dove le cose si rompono:

  • Il problema della Norvegia. Secondo le regole di YAML 1.1, il valore non quotato NO viene analizzato come booleano false, e yes, on e off diventano anch'essi booleani. Un codice paese o un'etichetta di interruttore può trasformarsi in true/false prima che tu te ne accorga. Metti tra virgolette i valori che intendi come stringhe.
  • Coercizione dei numeri. Una versione come 3.10 può perdere lo zero finale e diventare 3.1, e 1.0 diventa un numero anche quando volevi testo. Metti tra virgolette le stringhe di versione e gli ID.
  • Ancore e alias scompaiono. I riferimenti &ancora e *alias di YAML non hanno equivalenti in JSON. Un buon convertitore li espande nel loro valore completo, quindi i dati sono corretti ma la deduplicazione è persa — la conversione da JSON a YAML a JSON non ricostruirà le ancore originali.
  • Commenti e scalari a blocchi. I commenti vengono eliminati andando in JSON. Gli scalari a blocchi su più righe (| e >) si comprimono in ordinarie stringhe JSON con escape \n, quindi l'intento di formattazione visiva va perso.
  • Indentazione tornando in YAML. JSON non codifica l'indentazione, quindi il convertitore sceglie uno stile coerente. Esaminalo prima di incollarlo in uno strumento sensibile all'indentazione.

Perché la modalità solo locale è importante

I file di configurazione e i payload delle API sono esattamente il tipo di dati che non dovrebbe essere caricato su un server casuale: spesso contengono hostname, token, nomi di servizi interni o dati dei clienti. Questo convertitore esegue il passaggio di parsing ed emissione nel tuo browser con JavaScript. Nulla viene inviato a un backend, nulla viene registrato e lo strumento funziona offline una volta caricata la pagina. Incolla un segreto Kubernetes o un workflow CI con la certezza che rimanga sul tuo computer.

Hai bisogno di strumenti correlati? Sfoglia l'intera raccolta di convertitori di dati, ripulisci l'input disordinato con il formattatore JSON, e torna qui ogni volta che devi spostarti tra il mondo delle API e il mondo della configurazione.

Domande frequenti

I miei dati vengono caricati da qualche parte?

No. La conversione avviene interamente nel tuo browser usando JavaScript locale. Il tuo JSON o YAML non viene mai inviato a un server, quindi segreti e file di configurazione rimangono privati.

Perché il mio valore YAML true o false è cambiato inaspettatamente?

YAML 1.1 tratta le parole non quotate come yes, no, on e off come booleani — il problema della Norvegia. Racchiudi tra virgolette qualsiasi valore che intendi come stringa in modo che sopravviva alla conversione come testo.

Cosa succede ai miei commenti quando converto YAML in JSON?

JSON non ha sintassi per i commenti, quindi tutti i commenti con cancelletto vengono eliminati durante la conversione. Se hai bisogno di preservare le note, mantieni la tua copia autorevole in YAML.

Vengono preservati le ancore e gli alias YAML?

Vengono espansi nei loro valori completi perché JSON non ha un meccanismo di riferimento. I dati rimangono corretti, ma la deduplicazione non è recuperabile quando si riconverte in YAML.

Posso convertire JSON in YAML oltre che YAML in JSON?

Sì, lo strumento funziona in entrambe le direzioni. Incolla JSON per ottenere YAML, o incolla YAML per ottenere JSON, e il convertitore rileva ed emette l'altro formato.

Perché YAML si rompe quando uso le tabulazioni?

YAML richiede spazi per l'indentazione e rifiuta le tabulazioni. Se un'incollata non riesce a essere analizzata, sostituisci i caratteri di tabulazione con spazi e mantieni l'indentazione coerente.