Conversione da YAML a JSON
Converte in JSON i dati in formato YAML. Permette di trasformare all'istante nel navigatore le strutture scritte in YAML — manifesti di Kubernetes, file di composizione dei contenitori, configurazioni dell'integrazione continua — in una forma trattabile con jq e con gli altri strumenti dedicati al JSON.
Che cos'è la conversione da YAML a JSON
La conversione da YAML a JSON prende una configurazione scritta nel formato YAML, pensato per essere letto e modificato agevolmente dalle persone — manifesti di Kubernetes, file docker-compose.yml, definizioni di flussi di lavoro di GitHub Actions — e la trasforma, direttamente nel navigatore, in JSON, un formato che i programmi possono elaborare meccanicamente. Questo strumento riconosce le mappature (`chiave: valore`), le sequenze a blocchi (`- elemento`), le sequenze in linea (`[a, b, c]`), le mappature in linea (`{a: 1, b: 2}`), gli scalari fondamentali come stringhe, numeri interi, numeri decimali, valori booleani e nulli, oltre ai commenti introdotti da `#`. Finché il vostro YAML si limita alle scritture di uso comune nei file di configurazione di tutti i giorni, potete incollarlo e ottenere subito una rappresentazione JSON funzionante.
Detto questo, questo convertitore non implementa l'intera specifica YAML 1.2. Tralascia deliberatamente le ancore (`&`) e gli alias (`*`) usati per riutilizzare i valori, i flussi con più documenti (un secondo `---`, o uno successivo, genera un errore), gli scalari a blocchi (`|` e `>`) per le stringhe su più righe, e le sequenze annidate sulla stessa riga come `- - elemento`. Se l'input si basa su una di queste funzioni avanzate, la conversione fallirà con un errore: conviene quindi riscrivere quella parte in una forma equivalente più semplice prima di incollarla. Tutta l'elaborazione avviene localmente nel navigatore: nulla di ciò che incollate viene mai inviato a un server esterno, un aspetto importante quando lo YAML esaminato contiene credenziali o dettagli sull'infrastruttura interna.
Come usare il convertitore da YAML a JSON
- Incollate il vostro YAML Incollate lo YAML da convertire nella casella di immissione a sinistra. Se non avete un file a portata di mano, cliccate su "Carica un esempio" per provare prima con un esempio funzionante.
- Controllate il JSON risultante Il risultato in JSON compare a destra non appena digitate o incollate il testo. Se l'immissione presenta un problema di sintassi, al suo posto viene mostrato un messaggio che ne spiega la probabile causa.
- Attivate o disattivate la visualizzazione formattata Attivate "Mostra formattato" per ottenere un layout indentato e facile da leggere, oppure disattivatelo per ridurre tutto a un'unica riga senza andare a capo, a seconda di dove intendete incollare il risultato.
- Copiate o scaricate il risultato Usate il pulsante copia per inviare il JSON direttamente negli appunti, oppure il pulsante scarica per salvarlo come file .json a sé stante da riutilizzare in seguito.
Consigli per sfruttarlo al meglio
- Incollando senz'altro un file di configurazione in YAML — un manifesto di Kubernetes, un file di composizione dei contenitori — se ne visualizza la struttura come JSON, trattabile poi con jq e con gli altri strumenti a riga di comando dedicati al JSON.
- I valori che cominciano con uno zero, come codici postali e numeri di telefono, se scritti senza virgolette sono interpretati come numeri e perdono lo zero iniziale: racchiudete sempre fra virgolette ciò che deve restare testo.
- Gli YAML complessi che usano ancore, alias oppure scalari a blocchi con i segni `|` e `>` non sono previsti: riscriveteli in una forma semplice prima di incollarli.
- Togliendo la spunta alla visualizzazione formattata si ottiene un JSON su una sola riga, senza andate a capo: comodo quando dovete incollarlo nel corpo della richiesta di un'interfaccia.
Quando è utile la conversione da YAML a JSON
Interrogare un manifesto di Kubernetes con jq
I manifesti possono facilmente arrivare a diverse centinaia di righe. Convertitene uno in JSON e passatelo a jq: un percorso come `.spec.containers[].image` estrae all'istante esattamente il valore che vi serve.
Passare docker-compose.yml a uno script
Se uno script o un'automazione che state scrivendo non include già un analizzatore YAML, convertire prima il file compose in JSON permette di leggerlo con un semplice analizzatore JSON integrato.
Visualizzare la struttura di una configurazione CI
Incollate un file di flusso di lavoro di GitHub Actions o GitLab CI per vederne la struttura resa in JSON: le relazioni annidate, facili da perdere di vista guardando solo i rientri, diventano percorsi di chiavi espliciti.
Prepararsi a usare uno strumento o un'interfaccia che accetta solo YAML
Anche se la vostra fonte di dati è in JSON, convertire prima un file YAML esistente può aiutarvi a capire esattamente come è organizzata la sua struttura prima di scriverci del codice contro.
Proseguire con altri strumenti dedicati al JSON
Incollate il JSON convertito direttamente in JSON verso definizioni di tipo TypeScript o nel formattatore JSON per continuare a elaborarlo.
Glossario dello YAML
- YAML
- Un acronimo ricorsivo di "YAML Ain't Markup Language". Rappresenta le strutture annidate tramite i rientri anziché con le parentesi, e ammette i commenti e virgolette per lo più facoltative: per questo è il formato preferito per i file di configurazione che le persone modificano a mano.
- Mappatura
- Una struttura YAML che associa chiavi a valori con la sintassi `chiave: valore`. Corrisponde a un oggetto JSON, e le righe con lo stesso livello di rientro vengono trattate come chiavi dello stesso livello della struttura.
- Sequenza a blocchi
- Un array YAML scritto come una serie di righe che iniziano ciascuna con un trattino seguito da uno spazio, come `- elemento`. Corrisponde a un array JSON; lo strumento legge una serie di righe `-` allo stesso livello di rientro come un unico array.
- Stile in linea
- Un modo di scrivere una sequenza o una mappatura su un'unica riga senza usare lo stile a blocchi basato sui rientri, come `[a, b, c]` oppure `{a: 1, b: 2}`. Assomiglia molto di più al modo in cui si scrivono array e oggetti JSON.
- Ancore e alias
- Una funzione dello YAML in cui `&nome` etichetta un valore in modo che possa essere richiamato altrove con `*nome`, permettendo di riutilizzare lo stesso blocco di configurazione senza ripeterlo. Questo strumento non supporta tale funzione.
- Scalare a blocchi
- Un modo di scrivere una stringa su più righe che inizia con `|` (che conserva gli a capo) oppure `>` (che li trasforma in spazi). È comune per incorporare script di shell o descrizioni lunghe, ma questo strumento non lo supporta.
- Flusso di documenti
- Un meccanismo che permette di raggruppare più documenti YAML in un unico file, separati da marcatori `---`. Le configurazioni di Kubernetes raggruppano spesso più risorse in questo modo, ma lo strumento converte un documento alla volta.
Domande frequenti
A proposito — perché le configurazioni si scrivono in YAML mentre gli strumenti chiedono JSON
YAML ammette i commenti e riduce al minimo le virgolette: per questa leggibilità è largamente usato nei file di configurazione che una persona modifica direttamente, dai manifesti di Kubernetes ai file di composizione dei contenitori, dalle configurazioni di GitHub Actions ai copioni degli strumenti di automazione. JSON, invece, ha una specifica semplice e poco ambigua, facile da elaborare meccanicamente, e si è affermato come formato di scambio delle interfacce e come ingresso di strumenti a riga di comando come jq.
La conversione da YAML a JSON colma proprio questo divario fra ciò che le persone scrivono e ciò che gli strumenti chiedono. I manifesti di Kubernetes, in particolare, possono superare le centinaia di righe e cercarvi un valore con grep ha i suoi limiti. Convertendoli una volta in JSON e interrogandoli con jq, si estrae in un istante soltanto ciò che serve indicando un percorso come `.spec.containers[].image`.
La specifica YAML nella sua versione 1.2 è però assai ampia e comprende molte funzioni avanzate: il riuso dei valori con ancore e alias, i flussi con più documenti, gli scalari a blocchi per le stringhe su più righe. Questo strumento non le copre tutte e si limita al sottoinsieme comune che ricorre nella pratica — mappature, sequenze e scalari fondamentali — ottenendo così una realizzazione semplice e priva di dipendenze.