Come usare il formattatore YAML
- Incolla il tuo YAML nella casella di input, per esempio un manifest Kubernetes, un file Docker Compose o una pipeline CI.
- Clicca Convalida per controllare la sintassi. Gli errori vengono segnalati con la riga e la colonna in cui il parser si è fermato.
- Clicca Formatta per riscrivere il documento con rientri e virgolette coerenti.
- Clicca Converti in JSON per vedere gli stessi dati come JSON.
- Copia il risultato nel tuo progetto.
Lo strumento analizza YAML 1.2 con la libreria open source js-yaml, interamente nel tuo browser. I tuoi file non vengono caricati né salvati da nessuna parte, il che conta quando contengono nomi host, credenziali o altri segreti.
Cos'è YAML?
YAML ("YAML Ain't Markup Language") è un formato di serializzazione dei dati pensato per le persone. Invece di parentesi e graffe usa il rientro per mostrare la struttura, un trattino (-) per gli elementi di un elenco e coppie chiave: valore per le mappature. Supporta anche i commenti con #, le stringhe su più righe, e ancore e alias per riutilizzare i valori.
Da YAML 1.2 il formato è progettato come un sovrainsieme di JSON, quindi quasi ogni documento JSON valido è valido anche come YAML. Questo rende facile passare dall'uno all'altro: YAML è piacevole da scrivere a mano, mentre JSON è ciò che scambiano la maggior parte delle API e dei programmi.
Poiché gli spazi hanno un significato, un singolo spazio fuori posto può cambiare la struttura di un file YAML senza produrre alcun errore. Convalidare e riformattare rivela come il parser legge davvero il tuo documento, che spesso è il modo più rapido per trovare un bug sottile.
Errori YAML comuni e come correggerli
Tabulazioni per il rientro. YAML vieta i caratteri di tabulazione per il rientro. Sostituiscili con spazi; la maggior parte degli editor può farlo in automatico.
Rientro incoerente. Gli elementi dello stesso livello devono essere allineati esattamente. In questo esempio, image ha un rientro eccessivo di uno spazio:
containers:
- name: web
image: nginx:1.27
Allinealo con name:
containers:
- name: web
image: nginx:1.27
Spazio mancante dopo i due punti. port:8080 viene letto come un'unica stringa semplice, non come una chiave con un valore. Scrivi port: 8080.
Caratteri speciali in stringhe senza virgolette. Un valore che inizia con *, &, !, @, { o [, oppure che contiene : o #, ha bisogno delle virgolette:
message: "Error: disk full"
pattern: "*.log"
Chiavi duplicate. Una mappatura non può contenere due volte la stessa chiave. Alcuni parser mantengono in silenzio l'ultimo valore; il validatore lo segnala, così te ne accorgi.
Tipizzazione implicita: la classica sorpresa di YAML
YAML deduce i tipi dei valori senza virgolette. Con lo schema core di YAML 1.2, true e false sono booleani, null e ~ sono null, e ciò che sembra un numero è un numero. I vecchi parser YAML 1.1 si spingevano oltre e trattavano yes, no, on e off come booleani, ed è così che, in un caso diventato celebre, il codice paese NO della Norvegia si è trasformato in false. Strumenti diversi ancora non sono d'accordo su questo, quindi metti tra virgolette tutto ciò che deve restare una stringa:
| Valore senza virgolette | Rischio | Forma sicura |
|---|---|---|
version: 1.10 | Diventa il numero 1.1 | version: "1.10" |
zip: 01234 | Lo zero iniziale può andare perso o essere letto come ottale | zip: "01234" |
country: NO | Booleano nei parser YAML 1.1 | country: "NO" |
enabled: yes | Booleano in 1.1, stringa in 1.2 | enabled: true |
Consigli e buone pratiche
- Usa due spazi per livello; è lo stile più comune nei file di Kubernetes, Ansible e GitHub Actions.
- Usa
|per il testo su più righe in cui gli a capo contano (script, certificati) e>quando le righe devono confluire in un unico paragrafo. - Convertire in JSON è un modo affidabile per confermare la struttura: se un valore finisce nell'oggetto sbagliato, l'output JSON lo rende evidente. Per le conversioni di andata e ritorno usa il Convertitore JSON ↔ YAML.
- Devi sistemare il JSON dopo? Il Formattatore e validatore JSON può ordinare le chiavi e minificarlo.
Domande frequenti
JSON è YAML valido?
In pratica, sì. YAML 1.2 è stato allineato in modo che i documenti JSON siano YAML validi, ed è per questo che puoi incollare JSON in questo strumento e verrà analizzato.
Perché YAML non consente le tabulazioni?
Le tabulazioni vengono mostrate con larghezze diverse in editor diversi, quindi un rientro che sembra allineato potrebbe non esserlo. La specifica vieta le tabulazioni per il rientro per mantenere la struttura priva di ambiguità.
Perché la formattazione ha rimosso i miei commenti?
Il formattatore analizza YAML trasformandolo in dati e lo stampa di nuovo. I commenti non sono dati, quindi non sopravvivono al passaggio di andata e ritorno. Ancore e alias vengono risolti durante l'analisi, quindi possono tornare espansi o con nomi generati.
Quale versione di YAML supporta questo strumento?
Usa js-yaml, che segue YAML 1.2. I file scritti per parser YAML 1.1 di solito funzionano, ma valori come yes e no vengono trattati come stringhe.
Aggiornato