La conversione da YAML a JSON trasforma i dati scritti in YAML (YAML Ain't Markup Language) in JSON (JavaScript Object Notation). Entrambi i formati rappresentano dati strutturati come coppie chiave-valore, sequenze e oggetti annidati, ma differiscono nella sintassi. YAML usa l'indentazione e una punteggiatura minimale, mentre JSON usa parentesi graffe, parentesi quadre e virgolette obbligatorie. Convertire tra i due è un'operazione comune quando si trasferiscono dati di configurazione tra sistemi che si aspettano formati diversi.
YAML è stato progettato per la leggibilità umana. Supporta commenti, stringhe multi-riga, ancore e alias, nessuno dei quali esiste in JSON. Quando si converte YAML in JSON, queste funzionalità specifiche di YAML vengono risolte: le ancore vengono espanse inline, i commenti vengono eliminati e i blocchi multi-riga diventano stringhe con escape. L'output è JSON valido che qualsiasi parser JSON è in grado di leggere.
La specifica YAML 1.2 definisce esplicitamente JSON come un sottoinsieme di YAML, il che significa che ogni documento JSON valido è anche YAML valido. Il contrario non è vero. I documenti YAML che usano commenti, ancore o chiavi complesse non hanno un equivalente JSON diretto e devono essere semplificati durante la conversione. Questo strumento gestisce la conversione automaticamente, producendo JSON pulito e ben formattato da qualsiasi input YAML valido.
Convertire YAML in JSON a mano è soggetto a errori, specialmente con strutture profondamente annidate o valori multi-riga. Un convertitore basato sul browser fornisce il risultato istantaneamente e intercetta gli errori di sintassi YAML prima che raggiungano l'applicazione.
⚡
Conversione immediata nel browser
Incolla il YAML e ottieni l'output JSON formattato in millisecondi. Nessun CLI da installare, nessuna fase di build, nessuna dipendenza da gestire.
🔀
Gestisce qualsiasi struttura YAML valida
Supporta mappature annidate, sequenze, stringhe multi-riga (blocchi literal e folded), ancore, alias, chiavi di merge e tutti i tipi scalari YAML 1.2.
🔒
I tuoi dati rimangono privati
Il parsing avviene interamente nel browser tramite JavaScript. Il contenuto YAML non viene mai inviato a un server, rendendolo sicuro per i file di configurazione che contengono credenziali o percorsi interni.
📋
Copia o regola il formato dell'output
Passa tra indentazione a 2 o 4 spazi. Copia il risultato JSON negli appunti con un clic per usarlo direttamente nel codice, nelle richieste API o nei file di configurazione.
Casi d'uso della conversione YAML in JSON
Sviluppo frontend
Converti i file di configurazione YAML da un design system o CMS in JSON per i bundler JavaScript, le REST API o le librerie i18n che richiedono input in formato JSON.
Backend engineering
Trasforma application.yml di Spring Boot o database.yml di Rails in JSON per script di deployment, API gateway o servizi che accettano solo configurazione JSON.
DevOps e CI/CD
Converti docker-compose.yml, i workflow di GitHub Actions o i manifest Kubernetes in JSON per strumenti di validazione, policy engine come OPA o per il debug con jq.
QA e testing
Trasforma le fixture di test YAML in payload JSON per strumenti di API testing come Postman, Insomnia o suite di test automatizzati che si aspettano body di richiesta in JSON.
Data engineering
Converti le definizioni di pipeline in formato YAML (Airflow, dbt, Dagster) in JSON per la validazione degli schemi, la manipolazione programmatica o l'integrazione con cataloghi di metadati.
Apprendimento e documentazione
Visualizza rapidamente come le strutture YAML si mappano ai loro equivalenti JSON quando si studiano i formati di configurazione o si scrive documentazione tecnica.
Riferimento alla mappatura dei tipi da YAML a JSON
Ogni tipo di dato YAML si mappa a un tipo JSON specifico durante la conversione. La tabella seguente mostra ogni costrutto YAML con il corrispondente output JSON. Comprendere queste mappature aiuta a prevedere come appariranno i dati YAML dopo la conversione ed evitare sorprese con tipi come booleani o valori null.
Tipo YAML
Sintassi YAML
Output JSON
Mapping
name: Alice
{ "name": "Alice" }
Sequence
- apple\n- banana
["apple", "banana"]
String
greeting: hello world
"hello world"
Integer
count: 42
42
Float
ratio: 3.14
3.14
Boolean
active: true
true
Null
value: null
null
Multiline (|)
bio: |\n Line one\n Line two
"Line one\nLine two\n"
Folded (>)
note: >\n A long\n paragraph
"A long paragraph\n"
Anchor/Alias
&default\n <<: *default
Resolved inline (no $ref)
Sintassi YAML vs JSON
YAML e JSON rappresentano lo stesso modello di dati ma con regole sintattiche diverse. Le differenze seguenti spiegano perché alcune funzionalità di YAML — come commenti e ancore — non hanno un equivalente JSON.
YAML
Usa l'indentazione per l'annidamento (senza parentesi graffe). Supporta i commenti con #. Le stringhe di solito non richiedono virgolette. Permette valori multi-riga con i blocchi scalari | (literal) e > (folded). Supporta ancore (&nome) e alias (*nome) per il riutilizzo. Con YAML 1.2, solo true e false sono riconosciuti come valori booleani; i parser YAML 1.1 più vecchi accettavano anche yes, no, on e off, ma questi sono trattati come stringhe semplici in YAML 1.2.
JSON
Usa parentesi graffe e quadre per l'annidamento. Nessuna sintassi per i commenti. Tutte le stringhe devono essere racchiuse tra virgolette doppie. Nessun letterale stringa multi-riga — si usano invece le sequenze di escape \n. Nessun meccanismo di ancora o alias. I valori booleani sono strettamente true e false in minuscolo. Tutte le chiavi devono essere stringhe tra virgolette. Le virgole finali non sono valide.
Esempi di codice
Di seguito sono riportati esempi funzionanti per la conversione programmatica da YAML a JSON. Ogni esempio analizza una stringa YAML e produce JSON formattato.
# Convert a YAML file to JSON with yq
yq -o=json config.yaml > config.json
# Pipe YAML into yq for one-off conversion
echo "name: demo" | yq -o=json
# → { "name": "demo" }
# Python one-liner (no extra install on most systems)
python3 -c "import yaml, json, sys; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < config.yaml
Domande frequenti
YAML è un superset di JSON?
Sì, a partire da YAML 1.2 (pubblicato nel 2009). Ogni documento JSON valido è anche YAML valido. La specifica YAML è stata aggiornata intenzionalmente per garantire la piena compatibilità con JSON. Il contrario però non è vero — funzionalità YAML come commenti, ancore e chiavi senza virgolette non hanno equivalenti in JSON.
Cosa succede ai commenti YAML durante la conversione?
I commenti vengono eliminati. JSON non ha una sintassi per i commenti, quindi le righe che iniziano con # nell'input YAML vengono perse durante la conversione. Se è necessario preservare i commenti, mantieni il file YAML originale come fonte primaria e genera il JSON da esso ogni volta che è necessario.
Come vengono gestite le ancore e gli alias YAML?
Le ancore (&nome) e gli alias (*nome) vengono risolti durante il parsing. L'alias viene sostituito con una copia completa dei dati ancorati. Il JSON risultante non contiene riferimenti — tutti i valori vengono espansi inline. Le chiavi di merge (<<: *nome) vengono risolte allo stesso modo.
La conversione da YAML a JSON può perdere dati?
Per i valori dei dati, no. Tutti i tipi scalari YAML (stringhe, numeri, booleani, null) hanno equivalenti diretti in JSON. Ciò che viene perso: commenti, direttive di tag, nomi delle ancore e la distinzione tra stile block e flow. Se il tuo YAML fa affidamento su tag personalizzati (!!python/object, !!timestamp), questi vengono risolti in valori semplici o possono causare un errore di parsing a seconda del parser.
Perché il booleano YAML 'yes' diventa una stringa in JSON?
Questo strumento usa js-yaml v4, che segue la risoluzione dei booleani di YAML 1.2. Solo true e false (in qualsiasi combinazione di maiuscole/minuscole) vengono riconosciuti come booleani. Valori come yes, no, on e off vengono trattati come stringhe semplici e appaiono come stringhe tra virgolette nell'output JSON. Se vedi valori stringa inattesi dove ti aspettavi dei booleani, usa true o false nel sorgente YAML.
Qual è la dimensione massima del file YAML che questo strumento riesce a gestire?
Lo strumento funziona nel browser, quindi il limite dipende dalla memoria disponibile sul tuo dispositivo. In pratica, i file fino a qualche megabyte vengono convertiti senza problemi. Per file molto grandi (50 MB+), uno strumento CLI come yq o uno script Python con PyYAML sarà più affidabile perché può elaborare i dati in streaming invece di caricare tutto in memoria in una volta sola.
Come vengono convertite in JSON le stringhe multi-riga YAML?
YAML ha due stili di blocco scalare multi-riga. I blocchi literal (|) preservano le interruzioni di riga come caratteri \n nella stringa JSON. I blocchi folded (>) sostituiscono le singole interruzioni di riga con spazi, trasformando più righe in un unico paragrafo. Entrambi gli stili aggiungono per impostazione predefinita una nuova riga finale, che puoi rimuovere con l'indicatore di chomping (|- o >-).