Utilia

Convertitore da JSON a YAML

Converti JSON in YAML e YAML in JSON nel browser, con supporto di anchor, merge key e file con più documenti. Nulla viene caricato.

Conversione

Come usare il convertitore da JSON a YAML

  1. Scegli la direzione: JSON → YAML oppure YAML → JSON.
  2. Incolla i tuoi dati, oppure clicca su Apri un file per caricare un file .json, .yaml o .yml (fino a 10 MB).
  3. Scegli l’Indentazione (2 o 4 spazi) e, se vuoi, Ordina le chiavi in ordine alfabetico.
  4. Clicca su Converti, o continua semplicemente a scrivere: il risultato si aggiorna da solo. Se l’input non è valido, il messaggio di errore indica la riga e la colonna del problema.
  5. Copia o scarica il risultato. Inverti la direzione rimanda l’output nell’input per convertirlo nell’altro senso.

JSON e YAML: stessi dati, sintassi diversa

In pratica YAML è un soprainsieme di JSON: ogni documento JSON descrive dati che YAML può esprimere, e YAML aggiunge una sintassi più leggera, più facile da leggere e modificare per le persone. Ecco perché i manifest di Kubernetes, i file Docker Compose, le pipeline di GitHub Actions e GitLab CI, i playbook Ansible e le specifiche OpenAPI sono di solito scritti in YAML, mentre API e programmi si scambiano JSON.

Gli stessi dati nei due formati:

{"name": "web", "ports": [80, 443], "env": {"DEBUG": false}}
name: web
ports:
  - 80
  - 443
env:
  DEBUG: false

Da JSON a YAML

Il convertitore scrive YAML in stile a blocchi: una chiave per riga, elenchi con i trattini e oggetti annidati indentati. Le stringhe lunghe non vengono mai spezzate, e le stringhe su più righe usano lo stile letterale |, così gli a capo restano esattamente come sono. Le stringhe che YAML leggerebbe altrimenti come un altro tipo vengono messe tra virgolette: "yes", "1.0" o "null" restano stringhe dopo un’andata e ritorno. Ordina le chiavi mette in ordine alfabetico le chiavi di ogni oggetto, il che rende più facile confrontare due file di configurazione.

Da YAML a JSON

Lo YAML viene letto con il core schema di YAML 1.2, le stesse regole usate dalla maggior parte degli strumenti moderni:

  • true/false, i numeri e null (o ~) diventano valori JSON; yes, no, on e off restano stringhe, come richiede la specifica YAML 1.2.
  • Anchor e alias (&base, *base) vengono espansi, e le merge key (<<: *base), frequenti nei file di CI, sono supportate.
  • Un file con più documenti separati da --- diventa un array JSON con un elemento per documento, e un messaggio ti dice quanti ne sono stati riuniti.
  • I commenti vengono scartati, perché JSON non ha commenti.
  • .inf e .nan non hanno un equivalente JSON; vengono scritti come le stringhe "Infinity" e "NaN".

Per proteggere il tuo browser dai file “billion laughs”, in cui pochi alias si espandono in miliardi di valori, un documento che si espande in più di un milione di valori viene rifiutato.

Errori YAML comuni

  • Tabulazioni per l’indentazione: YAML ammette solo spazi.
  • Indentazione incoerente: gli elementi dello stesso elenco o oggetto devono iniziare nella stessa colonna.
  • Spazio mancante dopo i due punti: chiave:valore è un’unica stringa, mentre chiave: valore è una coppia chiave-valore.
  • Caratteri speciali senza virgolette: un valore che inizia con @, un backtick, *, & o !, o che contiene : o #, va messo tra virgolette.

Domande frequenti

Il mio file viene inviato a un server?

No. La conversione avviene nel tuo browser, e i tuoi file di configurazione, i segreti o i dati delle API non lasciano mai il tuo computer.

Perché "yes" e "no" non vengono convertiti in booleani?

Da YAML 1.2, solo true e false sono booleani. I vecchi parser YAML 1.1 trattavano yes, no, on e off come booleani, causando il famoso “problema della Norvegia” (il codice paese NO letto come false). Questo strumento segue YAML 1.2.

I commenti YAML vengono conservati?

No. JSON non ha commenti, quindi vanno persi in YAML → JSON. Quando converti JSON → YAML, puoi aggiungere commenti al risultato in seguito.

Posso convertire un file Kubernetes con più risorse?

Sì. Ogni risorsa separata da --- diventa un elemento di un array JSON. Riconvertendo quell’array in YAML ottieni un unico documento che contiene un elenco.

Il convertitore cambia l'ordine delle chiavi?

No, a meno che tu non spunti Ordina le chiavi: le chiavi mantengono l’ordine in cui compaiono nel tuo input. L’unica eccezione viene da JavaScript stesso: le chiavi che sono numeri interi, come "10" o "2", vengono messe per prime, in ordine crescente.