JSON vs XML
JSON e XML 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
Entrambi contengono dati annidati ed entrambi sono testo, quindi l'uno può esprimere quasi tutto ciò che esprime l'altro. Il JSON lo fa con molta meno cerimonia: niente tag di chiusura, nessuna decisione fra attributi ed elementi, e una forma che si mappa direttamente sulle strutture dati di ogni linguaggio moderno. È per questo che ha soppiantato l'XML nelle API quasi del tutto.
L'XML conserva i vantaggi della sua età e della sua ambizione. Ha veri linguaggi di schema, spazi dei nomi per mescolare vocabolari e un linguaggio di interrogazione in XPath, e gestisce i documenti — prosa con marcatura sparsa dentro — in un modo che il JSON non sa esprimere affatto. Editoria, dati pubblici e formati per ufficio ci girano ancora sopra per queste ragioni.
Se stai convertendo XML in JSON, la cosa da controllare sono gli attributi. Ogni convertitore deve inventarsi una convenzione per loro, e le due più comuni — anteporre un prefisso alla chiave o annidarli sotto un oggetto separato — producono JSON diversi dallo stesso XML. Qualunque usi il tuo strumento, il risultato non si riconverte più nel file da cui sei partito.
Fianco a fianco
| Proprietà | JSON | XML |
|---|---|---|
| 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ì | No |
| Commenti | No | Sì |
| Più di uno nello stesso file | No | No |
| Pubblicato | 2001 | 1998 |
Dove differiscono davvero
- Solo JSON sa che tipo di valore sta contenendo. Nell'altro tutto è testo, ed è per questo che gli zeri iniziali svaniscono e i numeri lunghi diventano notazione scientifica.
- Solo XML ha una sintassi per i commenti. Convertire via da lui perde ogni spiegazione contenuta nel file conservandone tutti i dati.
- Sono quasi coetanei, ed è per questo che si sovrappongono così tanto.
Cosa si sbaglia di solito
- Convertire verso il formato senza tipi trasforma ogni valore in testo. Gli zeri iniziali spariscono, i numeri lunghi diventano notazione scientifica e le date tornano nella forma che il programma di lettura indovina.
- 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 API, configurazione e dati che si muovono fra programmi, dove vincono meno cerimonia e mappatura diretta sui tipi nativi.
- Scegli XML quando
- Scegli l'XML per i documenti, per tutto ciò che richieda validazione con schema o spazi dei nomi, e dove un sistema esistente lo parla già.
Convertire dall'uno all'altro
Domande frequenti
- L'XML si converte in JSON senza problemi?
- Non sempre. L'XML distingue gli attributi dagli elementi figli e permette di mescolare testo ed elementi nello stesso nodo, e il JSON non ha l'equivalente né dell'uno né dell'altro. I convertitori adottano convenzioni — per esempio un prefisso davanti al nome dell'attributo — e il risultato è JSON valido che non torna più all'XML originale.
- Fra JSON e XML, 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.