Vai al contenuto principale

JSON vs YAML

JSON e YAML sono entrambi molto usati e vengono scelti per ragioni diverse. Questa pagina li mette a confronto sulle cose che decidono fra l'uno e l'altro, e rimanda ai convertitori per entrambe le direzioni — ognuno dei quali gira nel tuo browser, senza che il file venga mai caricato.

La risposta breve

Esprimono le stesse forme — lo stesso annidamento, gli stessi valori — e differiscono in come si scrivono e in chi deve leggerle. Lo YAML lascia cadere parentesi e virgolette e fa fare il lavoro all'indentazione, cosa che rende un file di configurazione molto più piacevole da modificare a mano. Permette inoltre i commenti, che il JSON non ha, e per un file di configurazione quello è spesso l'argomento decisivo.

Il vantaggio del JSON è di essere noioso. C'è un solo modo di scriverlo, ogni linguaggio lo interpreta in modo identico, e nessun cambiamento di spaziatura può alterarne il significato. Lo YAML ha abbastanza sottigliezze nelle sue regole — indentazione, tipizzazione implicita, valori come `no` e `on` — perché un file possa significare qualcosa di diverso da come appare.

Un assetto comune è scrivere YAML e generarne il JSON, tenendo i commenti e la leggibilità dove lavorano le persone e consegnando ai programmi la versione non ambigua. Funziona bene finché lo YAML resta la fonte di verità: convertire nell'altro senso produce un file con la forma intatta e ogni commento sparito.

Fianco a fianco

JSON e YAML a confronto sulle proprietà che li separano.
ProprietàJSONYAML
Salvato comeTesto semplice, leggibile in qualsiasi editorTesto semplice, leggibile in qualsiasi editor
Che cosa può contenereValori annidati dentro altri valoriValori annidati dentro altri valori
I numeri restano numeri
CommentiNo
Più di uno nello stesso fileNo
Pubblicato20012001

Dove differiscono davvero

  • Solo YAML ha una sintassi per i commenti. Convertire via da lui perde ogni spiegazione contenuta nel file conservandone tutti i dati.
  • Solo YAML può contenere più documenti in un file, cosa che conta quando una conversione ha più di una cosa da scrivere.
  • Sono quasi coetanei, ed è per questo che si sovrappongono così tanto.

Cosa si sbaglia di solito

  • I commenti non sopravvivono in un formato che non ha sintassi per loro. I dati arrivano intatti e ogni spiegazione è sparita, il che rende quella direzione di fatto a senso unico.

Quale scegliere

Scegli JSON quando
Scegli il JSON per tutto ciò che un programma scrive o legge, per le API e ovunque un'interpretazione non ambigua conti più della leggibilità.
Scegli YAML quando
Scegli lo YAML per configurazioni che modificherà una persona, dove i commenti e l'assenza di punteggiatura valgono più del rigore.

Convertire dall'uno all'altro

Domande frequenti

I commenti si perdono convertendo YAML in JSON?
Sì, e non c'è modo di aggirarlo: il JSON non ha alcuna sintassi per un commento, quindi non c'è dove metterli. Questo rende la conversione a senso unico nella pratica: i dati sopravvivono, la spiegazione no. Tieni lo YAML se i commenti contano.
Fra JSON e YAML, quale è meglio?
Nessuno dei due, in generale: se uno fosse semplicemente migliore, l'altro sarebbe sparito. Sono bravi in cose diverse, e la risposta breve qui sopra dice quale in quale. La domanda utile è cosa deve fare il file dopo: essere modificato, essere pubblicato, essere aperto da qualcun altro, o stare dentro un limite di dimensione.
Convertire dall'uno all'altro fa perdere qualcosa?
Dipende dalla direzione. Convertire verso un formato che conserva tutto non perde nulla ma non recupera nemmeno nulla; convertire verso uno che scarta dettaglio ne perde un po' ogni volta. La tabella qui sopra dice quale dei due fa cosa.
Posso riconvertire indietro?
Il file si riconverte, ma se torni indietro invariato dipende dalla direzione. Fra due formati che conservano tutto, un viaggio di andata e ritorno è senza perdita. Dove uno dei due scarta dettaglio, quel dettaglio è andato e il viaggio di ritorno non può inventarlo.
Posso usarli entrambi?
Su una pagina web spesso sì, ed è di solito la risposta giusta: servi il formato moderno più piccolo ed elencane uno più vecchio come ripiego, così ogni browser prende ciò che comprende. Per un file che consegni a una persona, scegline uno: quello che riuscirà ad aprire.
Quale supporta il mio software?
La tabella fianco a fianco qui sopra dice quali browser leggono ciascuno, che è la parte che varia di più. Il supporto dei programmi da scrivania è più difficile da riassumere in generale e tende a stare anni indietro ai browser, quindi se il file va a qualcun altro il più vecchio e più diffuso dei due è la scelta più sicura.
Convertire fra i due è gratis?
Sì, senza account e senza limiti su quanti file converti. Ogni convertitore collegato da questa pagina gira nel tuo browser: il file viene letto dal tuo dispositivo, convertito da codice che gira su di esso e restituito come download.
Il mio file viene caricato?
No. Qui non esiste alcun server di conversione a cui caricarlo, e non è coinvolto alcun servizio di terze parti. Puoi verificarlo tu stesso: apri gli strumenti per sviluppatori del browser, passa al pannello Rete senza filtri ed esegui una conversione — nessuna richiesta porta con sé il tuo file.

La pubblicità su questo sito

Questo sito è pagato dalla pubblicità. Gli annunci possono archiviare cookie per scegliere cosa mostrarti e per non ripetersi. I tuoi file non c'entrano nulla: non lasciano mai il browser, qualunque bottone tu prema, e ogni strumento funziona in entrambi i casi.

Che cosa comprende