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
| Proprietà | JSON | YAML |
|---|---|---|
| Salvato come | Testo semplice, leggibile in qualsiasi editor | Testo semplice, leggibile in qualsiasi editor |
| Che cosa può contenere | Valori annidati dentro altri valori | Valori annidati dentro altri valori |
| I numeri restano numeri | Sì | Sì |
| Commenti | No | Sì |
| Più di uno nello stesso file | No | Sì |
| Pubblicato | 2001 | 2001 |
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.