JSON Toolkit

JSON o YAML

In sintesi: JSON delimita con le parentesi graffe e YAML con l'indentazione: le macchine ricevono JSON, gli umani che modificano la configurazione ricevono YAML. I commenti, gli anchor e le strutture multi-documento non sopravvivono.

Principiante~4 min di letturaPubblicato il 2026-10-30Aggiornato il 2026-10-30
Quando usare JSON e quando usare YAML

In sintesi: usa JSON per i dati macchina-a-macchina e YAML per la configurazione che gli umani modificano; preferisci YAML quando hai bisogno di commenti, testo su più righe o anchor, e JSON quando ogni linguaggio deve analizzare lo stesso payload senza ambiguità.

Fianco a fianco

{
  "server": {
    "host": "127.0.0.1",
    "port": 8080
  }
}
server:
  host: 127.0.0.1
  port: 8080

Stessa struttura. YAML elimina la punteggiatura e guadagna uno spazio per un commento.

Dove differiscono

JSON YAML
Struttura Parentesi graffe e virgole Indentazione
Commenti Nessuno Sì
Stringhe Virgolette doppie, escaping richiesto Di solito senza virgolette
Testo su più righe Escape \n o array Scalar a blocco `
Riutilizzo Nessuno Anchor & e alias *
Documenti multipli Avvolgi in un array Separatori ---
Velocità di parsing Veloce Più lenta, regole di indentazione
Ambiguità Molto bassa no analizzato come booleano, indentazione di un livello fuori posto

Quest'ultima riga è il vero costo di YAML. In YAML 1.1, country: NO produce il booleano false, e version: 1.0 può diventare un float. JSON non ha affatto tipizzazione implicita.

Scegliere

JSON: corpi di richiesta e risposta, messaggi da servizio a servizio, colonne JSON nei database, qualsiasi cosa che deve essere analizzata allo stesso modo in ogni linguaggio.

YAML: ecosistemi in cui è il default (Kubernetes, Ansible, GitHub Actions, Docker Compose); configurazione che richiede spiegazioni; file dominati da testo lungo come certificati, script o SQL.

Cosa si perde nella conversione

YAML → JSON: tutti i commenti, il riutilizzo tramite anchor (espanso in duplicati), tutti i documenti tranne il primo, e la grafia originale di date e booleani.

JSON → YAML: la distinzione stringa/numero si indebolisce, quindi "8080" e 8080 richiedono entrambi virgolette esplicite per restare sicuri.

Converti per migrazioni e ispezioni una tantum. Non mantenere lo stesso file in due formati come viste parallele.

FAQ

Come devo decidere tra JSON e YAML?

Parti da chi legge e mantiene il file: usa JSON quando è un programma a generarlo, attraversa i confini tra linguaggi e deve essere analizzato in modo prevedibile; usa YAML quando è un umano a modificarlo e necessita di spiegazioni sui campi o di lungo testo su più righe. Si convertono l'uno nell'altro, ma non mantenere la stessa configurazione in entrambi i formati a lungo termine.

Perché YAML produce più ambiguità di tipo?

YAML ha tipizzazione implicita, quindi valori come NO, on o 1.0 possono diventare booleani, date o numeri. JSON ha solo tipi espliciti: una stringa deve essere tra virgolette, il che rende il parsing più prevedibile tra linguaggi.

I commenti e gli anchor devono sopravvivere quando si converte YAML in JSON?

No. I commenti, gli anchor e i documenti multipli di YAML non possono essere rappresentati in JSON; gli anchor vengono espansi in contenuto duplicato. Se devi preservarli, usa una libreria YAML con una Document API invece di un round-trip tramite oggetti.

Ulteriori letture