Convertitore da YAML a JSON

Incolla YAML (manifest Kubernetes, Docker Compose, configurazioni CI) e ottieni subito JSON pulito. Gli errori mostrano la riga esatta con un indicatore.

Funziona nel browserNessuna registrazioneNessun caricamento

Output JSON

Come usare YAML to JSON

  1. Incolla lo YAML nel riquadro di sinistra oppure apri un file .yaml/.yml.
  2. Il JSON compare a destra mentre scrivi. Scegli 2 spazi, 4 spazi o tab per l'output.
  3. Spunta Ordina chiavi per ordinarle alfabeticamente. Aiuta quando confronti configurazioni.
  4. Se lo YAML non è valido, la barra di stato mostra riga e colonna, e le righe problematiche compaiono sotto con un indicatore ^.
  5. Copia o scarica il JSON, oppure premi Inverti per riconvertirlo in YAML.

Come lo YAML corrisponde al JSON

JSON è un sottoinsieme di YAML 1.2, quindi ogni mapping YAML diventa un oggetto JSON, ogni sequenza diventa un array e gli scalari diventano stringhe, numeri, booleani o null. Le funzionalità esclusive di YAML vengono risolte durante la conversione:

  • Commenti (# …) vengono eliminati, perché JSON non ha commenti.
  • Anchor e alias (&base, *base, <<: *base) vengono espansi in copie complete.
  • Timestamp come 2024-01-02 diventano stringhe ISO 8601.
  • Stringhe multiriga (blocchi letterali | e ripiegati >) diventano normali stringhe con escape \n.

YAML multi-documento

Un singolo file può contenere più documenti YAML separati da ---, come avviene spesso nei manifest Kubernetes. JSON non ha un equivalente, quindi il convertitore restituisce un array JSON con un elemento per documento e lo indica nella barra di stato. Un --- isolato alla fine viene ignorato.

Insidie tra YAML 1.1 e 1.2

Questo convertitore segue YAML 1.2, la specifica attuale. Molti strumenti più vecchi (PyYAML, Psych di Ruby, alcune versioni di Kubernetes e Ansible) leggono ancora YAML 1.1, dove le regole sono diverse:

  • Il problema della Norvegia: in YAML 1.1 country: no significa false, quindi il codice paese della Norvegia NO sparisce. Lo stesso vale per yes, on, off, y e n. YAML 1.2 considera booleani solo true e false.
  • Numeri ottali: 0755 è ottale in 1.1 ma un normale decimale in 1.2, che usa 0o755. Per sicurezza metti tra virgolette i permessi dei file.
  • Numeri sessagesimali: in 1.1 22:30 può essere interpretato come il numero 1350. Metti tra virgolette orari e mappature di porte come "8080:80".

La direzione JSON → YAML mette automaticamente tra virgolette le stringhe ambigue ('no', 'on', 'y'), quindi lo YAML prodotto si legge allo stesso modo in entrambe le versioni.

Domande frequenti

Il mio YAML viene caricato da qualche parte?
No. Il parsing avviene nel tuo browser con la libreria open source js-yaml. Le configurazioni che contengono segreti o hostname interni non lasciano mai il tuo computer.
Perché il mio YAML fallisce con “bad indentation”?
In YAML l'annidamento è definito dagli spazi, e i tab non sono ammessi per l'indentazione. Assicurati che le chiavi sorelle siano allineate esattamente e che gli elementi di lista (-) siano indentati in modo coerente sotto la chiave genitore.
Cosa succede ai commenti YAML?
Vengono rimossi. JSON non ha una sintassi per i commenti, quindi non possono essere trasferiti. Riconvertendo in YAML non verranno ripristinati.
Perché <code>no</code> è rimasto una stringa?
Questo strumento segue YAML 1.2, dove solo true/false sono booleani. I parser YAML 1.1 più vecchi trasformerebbero no, yes, on e off in booleani (il “problema della Norvegia”).
Posso convertire un manifest Kubernetes con più risorse?
Sì. Ogni risorsa separata da --- diventa un elemento dell'array JSON di output, pronto per jq o kubectl apply -f -, che accetta anche liste JSON.

Strumenti correlati