Come si usa
- Scegli la direzione: JSON → YAML oppure YAML → JSON.
- Incolla i dati o premi “Prova un esempio”. Il risultato si aggiorna mentre scrivi.
- Scegli un rientro di 2 o 4 spazi per il risultato.
- Copia o scarica il risultato. “Usa il risultato come input” inverte la direzione per consentire la conversione inversa.
Come funziona
La conversione usa la libreria open source yaml (versione 2), che implementa la specifica YAML 1.2. Per gli usi pratici, YAML 1.2 è un superset di JSON: qualsiasi documento JSON viene convertito in YAML senza perdite e YAML che usa solo mappe, elenchi, stringhe, numeri, valori booleani e null viene riconvertito in un JSON identico.
Quando scrive YAML, lo strumento racchiude tra virgolette le stringhe che potrebbero essere interpretate come qualcos'altro. I parser YAML 1.1 meno recenti, come PyYAML e molti strumenti CI, interpretano yes, no, on e off come valori booleani, 0777 come numero ottale e 2024-01-31 come data: perciò questi valori vengono scritti come "yes", "0777" e "2024-01-31". Le stringhe lunghe non vengono suddivise su più righe. I commenti non possono essere mantenuti, perché JSON non prevede commenti.
Quando legge YAML, lo strumento espande ancore (&name) e alias (*name), inclusa la chiave di merge <<; un file con più documenti separati da --- diventa un array JSON. Per proteggere il browser, l'espansione degli alias è limitata, così da bloccare i documenti “billion laughs”. I valori YAML senza un equivalente in JSON vengono convertiti nel modo più fedele possibile: .inf e .nan diventano null e i timestamp restano stringhe. Gli errori di sintassi vengono segnalati con riga e colonna.
Esempi
Manifest Kubernetes
Un Deployment scritto in JSON da uno script viene convertito nel formato YAML che gli utenti di kubectl si aspettano, con gli elenchi sotto containers scritti come - name: web. Valori come "no" restano tra virgolette, così rimangono stringhe.
Configurazione CI con ancore
Un file di pipeline definisce i valori predefiniti con defaults: &defaults e li riutilizza con <<: *defaults. La conversione in JSON mostra esattamente quali chiavi risultano assegnate a ogni job dopo la fusione.
Specifica OpenAPI
Un file OpenAPI viene gestito in YAML, ma un generatore di codice richiede JSON. Incolla il YAML, scegli il rientro di 2 spazi e scarica il file .json.
Domande frequenti
Perché "yes" viene scritto tra virgolette nel mio YAML?
Secondo le regole di YAML 1.1, ancora usate da PyYAML, Ansible e molti altri strumenti, yes, no, on e off senza virgolette sono valori booleani. Racchiudendoli tra virgolette restano stringhe in qualsiasi parser. Le virgolette non fanno parte del valore.
I commenti YAML vengono mantenuti durante la conversione in JSON?
No. JSON non prevede una sintassi per i commenti, quindi vengono rimossi. Riconvertendo il JSON in YAML non verranno ripristinati.
Cosa succede se ci sono più documenti YAML separati da ---?
Vengono convertiti in un unico array JSON, con un elemento per documento e nello stesso ordine. Un singolo documento viene convertito direttamente nel suo valore.
E i tag personalizzati, come !Ref di CloudFormation?
I tag specifici di un'applicazione non vengono riconosciuti. Lo strumento mostra un avviso e converte il valore contrassegnato come valore semplice: !Ref MyBucket diventa la stringa "MyBucket" e il tag viene perso.
Privacy
La conversione in entrambe le direzioni avviene interamente nel browser. I dati JSON o YAML non vengono caricati, salvati né inclusi nelle analisi.