DocumentiImmaginiMediaStrumenti PDF

Converti JSON in YAML Online

Converti JSON in YAML leggibile. Ideale per creare configurazioni Docker Compose, Kubernetes o GitHub Actions.


name: John Doe
age: 30
active: true
tags:
  - developer
  - javascript
address:
  city: Madrid
  zip: 28001
Processed in your browser

Dal JSON delle API a una configurazione YAML leggibile

Crea configurazioni DevOps

Trasforma le risposte JSON dalle API di Kubernetes, Docker o strumenti cloud in file di configurazione YAML modificabili.

Workflow DevOps

Converti i template JSON di CloudFormation o Azure ARM in YAML equivalente per una migliore leggibilita e manutenibilita.

100% privato

Il tuo JSON viene elaborato nel tuo browser. Non viene mai caricato su alcun server. Nessuna registrazione, nessun limite di utilizzo.

YAML pulito

Indentazione a 2 spazi, valori tipizzati correttamente, pronto da incollare in docker-compose.yml o in un manifest Kubernetes.

Tre passaggi, senza complicazioni

1

Incolla il tuo JSON

Incolla qualsiasi JSON valido: risposta API, configurazione, dati strutturati. Sono accettati sia JSON formattato che minificato.

2

Conversione in YAML pulito

Il JSON viene convertito in YAML con indentazione a 2 spazi, seguendo le convenzioni dei progetti DevOps piu popolari.

3

Copia e usa il YAML

Copia il YAML risultante per usarlo come base del tuo docker-compose.yml, di un manifest Kubernetes o di qualsiasi configurazione YAML.

Hai delle domande?

YAML supera JSON in leggibilita per le configurazioni lunghe e gerarchiche. I principali vantaggi di YAML sono: supporto ai commenti (fondamentale nei file di configurazione documentati), sintassi piu concisa (senza parentesi graffe o virgolette nella maggior parte dei casi), migliore rappresentazione delle stringhe su piu righe (script, comandi, testo) e lettura piu naturale degli elenchi. JSON e superiore quando la destinazione e un'API o un programma che lo elabora automaticamente: l'analisi e piu veloce, la specifica e piu semplice e rigorosa e c'e meno ambiguita. La regola pratica in DevOps: YAML per i file che gli esseri umani modificano direttamente, JSON per i dati scambiati tra sistemi.

Il convertitore genera YAML strutturalmente equivalente al JSON di input, senza commenti (JSON non ha commenti, quindi non ci sono informazioni da trasferire). Tuttavia, il YAML generato e un ottimo punto di partenza: aprilo in qualsiasi editor e aggiungi commenti manualmente con # prima o dopo qualsiasi riga. Negli strumenti come docker-compose.yml e nei manifest Kubernetes, i commenti sono fondamentali per documentare lo scopo di ogni valore di configurazione.

JSON e considerevolmente piu veloce da analizzare rispetto a YAML. L'analisi JSON e O(n) con costanti molto basse: parser come simdjson (usato in Node.js dalla versione 17) elaborano fino a 3 GB/s su hardware moderno. YAML richiede un parser piu complesso (gestione di ancore, alias, tipi espliciti, vari stili di stringa) ed e tipicamente 10-50 volte piu lento di JSON per lo stesso volume di dati. Per piccoli file di configurazione (un docker-compose.yml di pochi KB), la differenza e impercettibile. Per le API che scambiano milioni di messaggi al secondo, JSON e la scelta giusta. L'uso di YAML negli strumenti DevOps e una decisione ergonomica per le persone che modificano quei file.

Il convertitore usa un'indentazione a 2 spazi, che e la convenzione adottata praticamente da tutto l'ecosistema DevOps: Kubernetes (kubectl genera YAML con 2 spazi), Helm, GitHub Actions, GitLab CI, Ansible e Docker Compose. Alcuni progetti usano 4 spazi (comune nei progetti Python dove la convenzione PEP 8 a 4 spazi influenza gli sviluppatori), ma 2 spazi e lo standard de facto nella comunita DevOps.

La conversione dei tipi e diretta: i numeri JSON (interi e float) sono rappresentati come scalari YAML senza virgolette; i booleani JSON (true/false) diventano true/false in YAML; null in JSON diventa null o ~ in YAML; le stringhe sono rappresentate senza virgolette quando non c'e ambiguita, o tra virgolette semplici o doppie quando il valore potrebbe essere interpretato come un altro tipo (ad esempio, la stringa 42 ha bisogno di virgolette per non diventare un numero, e true ha bisogno di virgolette per non diventare un booleano).

Convertire JSON in YAML: dalle risposte API a configurazioni DevOps leggibili

La conversione da JSON a YAML e un'operazione di routine nei flussi di lavoro DevOps moderni. Le API Kubernetes (l'API REST di Kubernetes restituisce le risorse in JSON per impostazione predefinita), AWS CloudFormation, Azure Resource Manager, Google Cloud Deployment Manager e la maggior parte degli strumenti infrastructure-as-code hanno interfacce JSON native, ma i loro utenti preferiscono lavorare con file di configurazione YAML per una migliore leggibilita. kubectl, lo strumento da riga di comando di Kubernetes, converte automaticamente tra YAML e JSON: quando esegui kubectl get deployment my-app -o yaml, Kubernetes restituisce l'oggetto API JSON e kubectl lo converte in YAML per la visualizzazione. La conversione inversa (da JSON a YAML) e utile quando si crea un manifest YAML da una risposta API, quando si migrano configurazioni tra strumenti o quando si documenta una configurazione esistente aggiungendo commenti YAML.

YAML (specifica 1.2, pubblicata su yaml.org nel luglio 2009) e un superset di JSON, garantendo che la conversione da JSON a YAML sia sempre possibile senza perdita di informazioni. Il contrario (da YAML a JSON) perde solo i commenti, che JSON non puo rappresentare. I vantaggi di YAML per le configurazioni umane sono ben documentati: l'assenza di parentesi graffe e parentesi quadre riduce il rumore visivo del 30-40% per le configurazioni tipiche; i commenti consentono di documentare lo scopo di ogni parametro direttamente nel file; le stringhe su piu righe (specialmente con il blocco letterale |) consentono di includere script shell, query SQL o contenuti di file direttamente nella configurazione senza fare l'escape dei caratteri speciali.

Nell'ecosistema Kubernetes, la scelta tra YAML e JSON e ben consolidata: i file che gli sviluppatori creano e mantengono nei repository git sono YAML; i dati che kubectl invia al server API sono JSON (kubectl converte il YAML in JSON internamente prima di fare la chiamata HTTP); le risposte del server API sono JSON; e gli strumenti di automazione (Helm, Kustomize, Argo CD, Flux) lavorano con YAML come input e JSON come protocollo interno. Questa separazione tra formato umano (YAML) e formato di protocollo (JSON) e uno schema seguito anche da GitHub Actions (i workflow sono YAML, l'API GitHub e JSON), GitLab CI, Ansible (i playbook in YAML, i dati dell'inventario dinamico in JSON) e Terraform (HCL e l'alternativa di HashiCorp, ma accetta anche JSON nativo nei file .tf.json).