JSON (Javascript Object Notation) e XML (Extended markup language), entrambi, più che linguaggi, sono stili di formattazione. Formati di scambio per le informazioni.

A cosa servono?

Questi stili di formattazione standard, garantiscono interoperabilità fra linguaggi, piattaforme e tecnologie di sviluppo diverse. Sono molto utilizzati come formati per le API. Contribuiscono alla definizione di web semantico. Non è la prima volta che parliamo di web semantico. L’importanza di formattare e strutturare i dati, con tag precisi che identifichino meglio la risorsa, ha un’importanza estrema per l’organizzazione delle informazioni, e i grandi Big dell’informatica puntano molto su questo.

Quali sono i vantaggi di XML?

E’ un formato migliore di scambio per i documenti strutturati. Essendo appunto un linguaggio di markup. Al contrario, JSON non fornisce alcun tipo di documento consultabile, non essendo un linguaggio di markup. XML è perciò più facile da capire per l’uomo. Questo lo rende utile laddove c’è necessità di avere file di configurazione facilmente editabili.

Quali sono i vantaggi di JSON?

Viene processato molto più facilmente perchè strutturato diversamente dall’xml. E’ inoltre supportato da una grandissima moltitudine di linguaggi e rappresenta un miglior formato di scambio per i dati piuttosto che per i documenti in se. Non è quindi molto pratica la lettura dalla prospettiva dell’uomo, i computer invece lo processano con facilità.

Un esempio di utilizzo di JSON con Javascript:

JSON.parse('{"nome":"Rocco"}');

Qual è la differenza?

Entrambi sono studiati per garantire un modo standard per la descrizione di differenti tipi di dati, e quindi strutturarli. Sono inoltre studiati per facilitare il trasporto in modo standard.
In quanto a velocità, in entrambi i casi, il fattore tempo è determinato dal tempo di parsing. E questo dipende dalle librerie e dalle infrastrutture usate per effettuare il parse.
Guardiamo un esempio della loro sintassi:

# JSON

{
  "impiegati": [
    {
      "nome": "Tony Stark",
      "genere": "M"
    },
    {
      "nome": "Bruce Wayne",
      "genere": "M"
    }
  ]
}

# XML

 <impiegati>
      <impiegato>
        <nome>Tony Stark</nome>
        <genere>M</genere>
      </impiegato>
      <impiegato>
        <nome>Bruce Wayne</nome>
        <genere>M</genere>
      </impiegato>
 </impiegati>

XML essendo anche un linguaggio di markup è utilizzabile per la descrizione di documenti. Gli elementi gerarchici possono anche avere attributi, questo non è possibile su JSON.

JSON ha una sintassi concisa per definire liste di elementi. Questo lo rende preferibile quando si ha a che fare con la serializzazione testuale di oggetti.

Un’altra differenze fra i due, sta nella rigorosità di sintassi che contraddistingue JSON, alcuni errori comuni nell’uso di JSON possono infatti essere:

<?php
 
// Le stringhe seguenti sono javascript valido, ma non valido JSON
 
// Il nome e il valore devono essere inclusi fra doppi apici
// l'apice singolo non è permesso
$bad_json = "{ 'zeus': 'zeus' }";
json_decode($bad_json); // null
 
// Il nome dev'essere incluso fra doppi apici
$bad_json = '{ zeus: "zeus" }';
json_decode($bad_json); // null
 
// Non sono ammesse virgole finali
$bad_json = '{ zeus: "zeus", }';
json_decode($bad_json); // null
 
?>