Convertitore da YAML a JSON
Incolla YAML in stile blocco qui sotto per ottenere JSON — sono
supportate mappature annidate, liste e scalari; lo stile di flusso {a: 1} / [1, 2, 3], le ancore e i
file multi-documento no (guarda le domande frequenti per capire
perché). Nulla di ciò che incolli viene caricato da nessuna parte;
la conversione avviene interamente nel tuo browser.
Un convertitore onesto su ciò che non fa
Lo YAML 1.2 completo è una specifica ampia — collezioni in linea
in stile di flusso, ancore e alias, flussi multi-documento,
scalari a blocco multilinea, e altro. Implementare tutto questo
rischia l'unica cosa che uno strumento di conversione non
dovrebbe mai fare: produrre in silenzio un output sbagliato che
non noti finché non rompe qualcosa a valle. Per questo questo
strumento supporta deliberatamente solo il sottoinsieme in stile
blocco che copre la stragrande maggioranza della configurazione
scritta a mano — mappature annidate chiave: valore,
liste con prefisso - (indentate sotto la loro chiave
o allo stesso livello di indentazione — entrambe le forme sono
YAML valido), e scalari semplici o tra virgolette. Se il tuo
input usa stile di flusso {a: 1} / [1, 2, 3], un'ancora (&nome), un alias
(*nome), un separatore multi-documento ---, o uno scalare a blocco |/>, otterrai un errore chiaro che
indica la riga e la funzionalità — mai una conversione rotta in
silenzio.
Esempio pratico
Input:
name: Alice age: 30 active: true tags: - a - b address: city: Rome zip: "00100"
diventa:
{
"name": "Alice",
"age": 30,
"active": true,
"tags": ["a", "b"],
"address": {
"city": "Rome",
"zip": "00100"
}
}
Nota che age diventa il numero 30
perché era scritto senza virgolette, mentre zip
resta la stringa "00100" perché nella sorgente era
tra virgolette — le virgolette sono esattamente ciò che indica a
questo parser (e allo YAML stesso) che un valore dall'aspetto
numerico è testo, non un numero.
Domande frequenti
Quale sottoinsieme di YAML supporta davvero questo strumento?
Mappature a blocchi annidate (una chiave seguita da righe chiave: valore indentate), liste a blocchi (elementi - , sia a livello superiore sia come valore di una chiave, indentati sotto la chiave o allo stesso livello — entrambe le forme sono YAML valido), valori scalari semplici o tra virgolette singole/doppie (stringhe, interi, decimali, true/false, null/~), e commenti che iniziano con # (un # dentro una stringa tra virgolette viene lasciato intatto). Questo copre la stragrande maggioranza dei file di configurazione scritti a mano — manifest Kubernetes, docker-compose.yml, workflow di GitHub Actions, configurazioni di app — senza fingere di implementare l'intera specifica YAML 1.2.
Quali funzionalità YAML NON sono supportate, e cosa succede se ne incollo una?
La sintassi in stile di flusso (oggetti {a: 1} o array [1, 2, 3] in linea), ancore (&nome) e alias (*nome), file multi-documento (separatori ---), scalari a blocco multilinea (| e >), e chiavi di mappatura non testuali sono tutti esplicitamente fuori ambito. Invece di indovinare e rischiare di produrre un JSON sbagliato in silenzio, questo strumento rileva queste costruzioni e mostra un errore chiaro che indica la riga e la funzionalità non supportata, così sai esattamente cosa riscrivere invece di ricevere un output rotto che potresti non notare.
Perché il mio YAML ha fallito con un messaggio su stile di flusso o un'ancora?
Supportare completamente YAML (ancore, alias, collezioni di flusso, flussi multi-documento) è davvero complesso da implementare correttamente, e un convertitore che sbaglia in modo sottile è peggio di uno onesto sui propri limiti — un bug silenzioso nella conversione di un file di configurazione può essere molto difficile da individuare. Se incontri questo errore, la correzione è di solito meccanica: riscrivi {a: 1, b: 2} come due righe chiave: valore indentate, oppure [1, 2, 3] come tre righe - elemento, e riprova la conversione.
Come viene gestito un valore come "00100" che sembra un numero?
Esattamente come farebbe YAML stesso: se il valore era scritto tra virgolette nella tua sorgente ("00100"), viene mantenuto come la stringa "00100" — le virgolette sono proprio ciò che indica a YAML (e a questo parser) che si tratta di testo, non di un numero. Se lo stesso valore fosse scritto senza virgolette come 00100, verrebbe convertito nel numero 100, perché nello YAML semplice non c'è nulla che distingua una stringa dall'aspetto numerico da un numero vero senza usare le virgolette.
Il mio YAML viene caricato da qualche parte?
No. L'analisi avviene interamente nel tuo browser con un piccolo parser scritto a mano — nulla di ciò che incolli viene inviato, salvato o registrato su un server. Vale per ogni strumento di questo sito.
Questo strumento valida che il mio YAML sia ben formato?
Controlla la struttura che comprende — indentazione coerente, virgolette abbinate e righe chiave: valore / - elemento riconoscibili — e segnala un numero di riga quando qualcosa non viene analizzato. Non è un validatore YAML 1.2 completo, dato che implementa solo il sottoinsieme in stile blocco descritto sopra; un file che è YAML valido ma usa una funzionalità non supportata verrà rifiutato con una spiegazione, invece di essere accettato o elaborato male in silenzio.