Formattatore YAML

Pubblicità

Formatta, valida YAML e converti tra YAML e JSON.

Input
Output
Pubblicità

Informazioni su questo strumento

YAML (YAML Ain't Markup Language) è stato creato originariamente da Clark Evans nel 2001, con contributi di Ingy döt Net e Oren Ben-Kiki. Il nome era inizialmente un acronimo giocoso per "Yet Another Markup Language", ma è stato poi ribattezzato come acronimo ricorsivo per sottolineare che YAML è fondamentalmente un formato di serializzazione dati, non un linguaggio di marcatura di documenti. La prima specifica ufficiale, [YAML 1.0](https://yaml.org/spec/1.0/), è stata pubblicata nel gennaio 2004, con l'attuale [specifica YAML 1.2](https://yaml.org/spec/1.2.2/) rilasciata nel 2009. YAML è stato progettato con la leggibilità umana come obiettivo primario. Utilizza una struttura basata sull'indentazione (solo spazi, mai tabulazioni) è una punteggiatura minima, rendendolo visivamente più pulito di JSON o XML per i file di configurazione. YAML supporta tipi di dati ricchi tra cui scalari, sequenze, mappature, stringhe multiriga (blocco letterale con | e blocco piegato con >), ancoraggi e alias per il riutilizzo dei dati, e persino chiavi complesse. È un superset rigoroso di JSON, il che significa che qualsiasi documento JSON valido è anche YAML valido. La filosofia progettuale di YAML si ispira a linguaggi come Python e alle convenzioni di formattazione delle email (RFC 2822). YAML è diventato lo standard de facto per la configurazione negli strumenti moderni DevOps e cloud-native. I manifest [Kubernetes](https://kubernetes.io/docs/concepts/overview/working-with-objects/), i file Docker Compose, i playbook Ansible, i workflow GitHub Actions, le definizioni GitLab CI e i template Helm chart usano tutti YAML estensivamente. Piattaforme Infrastructure-as-Code come Terraform e CloudFormation si basano anch'esse su YAML. Questo formattatore usa la libreria [js-yaml](https://github.com/nodeca/js-yaml), l'implementazione JavaScript più diffusa del parser YAML 1.2. Supporta la formattazione con indentazione personalizzabile, la validazione della sintassi con report di errori dettagliati e la conversione bidirezionale tra YAML e JSON. Tutta l'elaborazione avviene interamente nel Suo browser — i Suoi dati non lasciano mai il Suo dispositivo.

Fonti: YAML

Come usare

  1. Incolli il Suo codice YAML o JSON nell'area di inserimento.
  2. Clicca su Formatta per abbellire, Valida per controllare la sintassi, o usa i pulsanti di conversione.
  3. Copia l'output formattato o usa la conversione YAML↔JSON secondo necessità.

L'Evoluzione di YAML

YAML è nato nel 2001 come iniziativa guidata da Clark Evans, insieme a Ingy döt Net e Oren Ben-Kiki, per creare un'alternativa user-friendly a XML per la serializzazione dei dati e la configurazione. All'epoca, XML era il formato dominante per i dati strutturati, ma la sua sintassi prolissa con tag di chiusura, virgolette degli attributi e dichiarazioni di namespace lo rendeva poco pratico per i file di configurazione che gli sviluppatori modificavano manualmente ogni giorno. La struttura basata sull'indentazione di YAML, ispirata a Python e alle convenzioni di formattazione delle email, offriva un approccio radicalmente più pulito. Il formato ha ottenuto la sua prima grande ondata di adozione attraverso il framework Ruby on Rails nel 2004-2005, che utilizzava database.yml per la configurazione del database e fixtures.yml per i dati di test. Questo ha introdotto un'intera generazione di sviluppatori web a YAML come formato di configurazione predefinito. La specifica YAML stessa si è evoluta attraverso diverse versioni: YAML 1.0 nel 2004 ha formalizzato il linguaggio, YAML 1.1 nel 2005 ha aggiunto funzionalità come le merge key è una risoluzione dei tipi migliorata, e YAML 1.2 nel 2009 ha allineato la specifica più strettamente con JSON, rendendo ogni documento JSON valido anche YAML valido. L'ascesa del DevOps e dell'infrastruttura cloud-native dal 2013 in poi ha trasformato YAML da una comodità popolare in uno standard industriale. Kubernetes ha adottato YAML per tutti i manifest delle risorse, Docker Compose lo ha usato per le definizioni multi-container, e piattaforme CI/CD come GitHub Actions, GitLab CI e CircleCI hanno tutte scelto YAML per la configurazione delle pipeline. I playbook Ansible, i chart Helm e i template CloudFormation hanno ulteriormente consolidato il suo dominio nell'infrastructure-as-code. La storia di YAML non è priva di controversie. Il famigerato "problema della Norvegia" — dove il codice paese NO viene silenziosamente interpretato come il booleano false in YAML 1.1 — ha evidenziato i pericoli della coercizione implicita dei tipi. Allo stesso modo, valori come "on", "off", "yes" e numeri di versione come 1.0 interpretati come booleani o float hanno causato innumerevoli bug sottili. La specifica YAML 1.2 ha affrontato molti di questi problemi inasprendo le regole di risoluzione dei tipi, ma i parser legacy che usano ancora il comportamento 1.1 rimangono una fonte di frustrazione. Nonostante queste peculiarità, la leggibilità e l'espressività di YAML ne hanno fatto il linguaggio indiscusso della gestione moderna della configurazione.

Capire i tuoi risultati

Dopo la formattazione, il Suo YAML viene visualizzato con indentazione coerente che mostra chiaramente la struttura gerarchica dei Suoi dati. Le mappature e le sequenze annidate sono indentate ciascuna di un livello in più, rendendo le relazioni genitore-figlio facili da tracciare visivamente. Il formattatore standardizza l'indentazione nell'intero documento, il che è fondamentale poiché YAML si basa sugli spazi per definire la struttura. Un badge verde "YAML valido" conferma che il Suo documento viene analizzato con successo secondo le regole YAML 1.2. Se vengono rilevati errori, appare un badge rosso "YAML non valido" con un messaggio di errore dettagliato che include numero di riga, posizione della colonna è un frammento di codice che mostra la posizione esatta del problema. Gli errori comuni includono indentazione incoerente, uso di tabulazioni invece di spazi, due punti mancanti dopo le chiavi di mappatura, indicatori errati di stringhe multiriga e chiavi duplicate all'interno della stessa mappatura. Durante la conversione in JSON, i commenti, gli ancoraggi e gli alias YAML vengono scartati. L'output JSON usa pretty-printing standard con indentazione di 2 spazi, rendendolo immediatamente utilizzabile in applicazioni JavaScript o payload API.

Come usare

  1. Incolli il Suo codice YAML o JSON nell'area di inserimento.
  2. Clicca su Formatta per abbellire, Valida per controllare la sintassi, o usa i pulsanti di conversione.
  3. Copia l'output formattato o usa la conversione YAML↔JSON secondo necessità.

Metodologia

Questo strumento usa la libreria js-yaml, un'implementazione JavaScript completa conforme alla specifica YAML 1.2, per tutte le operazioni di analisi e serializzazione. Quando inserisce YAML, la funzione safeLoad di js-yaml analizza il testo in un albero di oggetti JavaScript nativo, risolvendo ancoraggi, alias e coercizioni di tipo. L'oggetto risultante viene poi ri-serializzato in YAML usando safeDump con il livello di indentazione configurato. Per la conversione da YAML a JSON, l'oggetto JavaScript analizzato viene passato attraverso JSON.stringify con opzioni di formattazione. Per la conversione da JSON a YAML, l'input viene prima analizzato con JSON.parse, poi serializzato tramite safeDump di js-yaml. La validazione funziona tentando di analizzare l'input e intercettando eventuali errori YAMLException, che includono informazioni dettagliate su riga, colonna e frammento. I commenti vengono preservati durante la formattazione YAML ma vanno necessariamente persi durante la conversione JSON, poiché JSON non supporta i commenti nella sua specifica.

Esempi pratici

Un ingegnere DevOps aggiorna un manifest di deployment Kubernetes per scalare un servizio da 3 a 5 repliche. Dopo aver modificato il YAML manualmente, lo incolla in questo formattatore per validare che l'indentazione sia corretta e non siano stati introdotti errori di sintassi prima di applicare la modifica con kubectl. Uno sviluppatore converte un file di configurazione JSON esistente in YAML per un nuovo playbook Ansible. Incolla il JSON nell'area di input, clicca su "JSON a YAML" e riceve un output YAML formattato in modo pulito, pronto per essere salvato come file playbook. Un team lead revisiona un file Docker Compose fornito da uno sviluppatore junior. Formatta il YAML per standardizzare l'indentazione a 2 spazi, rendendo il file coerente con il resto dei file di configurazione del progetto.

Consigli e Buone Pratiche

Usi sempre spazi per l'indentazione, mai tabulazioni. La maggior parte dei parser YAML rifiuterà completamente le tabulazioni, e mescolare tabulazioni e spazi causa errori sottili e difficili da debuggare. Mantenga 2 spazi per livello per coerenza con le convenzioni della community. Metta tra virgolette le stringhe che potrebbero essere interpretate erroneamente come altri tipi: valori come "yes", "no", "true", "false", "null", "1.0" e "on" vengono automaticamente convertiti in booleani o numeri in YAML. Li racchiuda tra virgolette singole o doppie per preservarli come stringhe. Usi ancoraggi (&nome) e alias (*nome) per evitare di duplicare grandi blocchi di configurazione. Questo è particolarmente utile nelle pipeline CI/CD dove più job condividono impostazioni comuni. Validi sempre il Suo YAML dopo la modifica, poiché un singolo spazio fuori posto può cambiare l'intera struttura del documento.

Tutti i calcoli vengono eseguiti localmente nel tuo browser. Nessun dato viene inviato a un server.

Incorpora questo strumento

Ottieni il codice

Questo strumento ti è stato utile?
Vuoi dirci di più?
0/500
Vuoi che ti ricontattiamo?
Grazie per il tuo feedback!

Domande frequenti

Qual è la differenza tra YAML e JSON?
YAML usa l'indentazione per la struttura ed è più leggibile, spesso usato per file di configurazione. JSON usa parentesi graffe e quadre, è più compatto e ampiamente usato per lo scambio di dati e le API. Entrambi possono rappresentare le stesse strutture dati — oggetti, array, stringhe, numeri, booleani e valori null.
Quali funzionalità YAML sono supportate?
Questo strumento supporta le funzionalità standard di YAML 1.2 tra cui: coppie chiave-valore, oggetti annidati, array (sia stile blocco che flusso), stringhe multiriga (letterali e piegate), commenti, ancoraggi e alias, e tutti i tipi di dati di base (stringhe, numeri, booleani, null).
Perché l'indentazione è importante in YAML?
YAML usa l'indentazione (spazi, non tabulazioni!) per definire struttura e gerarchia. A differenza di JSON che usa le parentesi graffe, YAML si basa interamente su un'indentazione coerente. Di solito si usano 2 spazi per livello. Un'indentazione errata causerà errori di analisi o strutture dati impreviste.
Come gestisce YAML le stringhe multiriga?
YAML fornisce diversi stili per le stringhe multiriga. Lo stile literal block (|) preserva le interruzioni di riga esattamente come scritte — ogni nuova riga nel sorgente diventa una nuova riga nel valore analizzato. Lo stile folded block (>) unisce le righe con spazi, trattando le singole nuove righe come spazi e le doppie come interruzioni di paragrafo. Entrambi gli stili possono essere modificati con indicatori di chomping: strip (-) rimuove le nuove righe finali, keep (+) le preserva e clip (predefinito) mantiene una nuova riga finale. Ad esempio, 'description: |\n Riga uno\n Riga due' produce una stringa con un'effettiva interruzione di riga tra le righe.
Perché YAML ha problemi di sicurezza?
Il problema di sicurezza più noto di YAML è la deserializzazione non sicura. Alcuni parser YAML (in particolare le versioni precedenti di PyYAML e la libreria YAML di Ruby) supportano tag specifici del linguaggio che possono istanziare oggetti arbitrari durante l'analisi, consentendo potenzialmente l'esecuzione remota di codice. Ad esempio, il tag !!python/object in PyYAML può eseguire codice Python arbitrario. Best practice moderne: usi sempre funzioni di caricamento sicure (yaml.safe_load in Python, YAML.parse in JS), non analizzi mai YAML non affidabile con l'istanziazione completa degli oggetti abilitata e preferisca JSON per lo scambio di dati con fonti non affidabili. Il parser basato su browser di questo strumento non esegue codice arbitrario.
Posso convertire tra YAML e JSON usando questo strumento?
Questo strumento si concentra sulla formattazione e validazione YAML, non sulla conversione tra formati. Tuttavia, YAML è un superset di JSON — ogni documento JSON valido è anche YAML valido. Questo significa che può incollare JSON nel formattatore YAML e verrà analizzato correttamente. Per la conversione dedicata da JSON a YAML e da YAML a JSON con pieno controllo sulle opzioni di output, InnoviCat offre strumenti di conversione separati. La differenza chiave tra i formati per la conversione: YAML supporta commenti, ancoraggi e stringhe multiriga che non hanno equivalenti JSON, quindi la conversione da YAML a JSON potrebbe perdere queste funzionalità.