json
JSON (JavaScript Object Notation) è un formato per l'interscambio di dati client/server, più flessibile di XML, sempre più usato in AJAX e nel web 2.0
Indice
JSON da server di terze parti
Questa sezione contiene diversi avvertimenti. Fino a questo punto, l'uso di JSON e AJAX è stato relativamente sicuro poiché state comunicando con server sotto il vostro controllo, ricevendo i dati che sono sotto il vostro controllo. Con i servizi di terze parti tutto cambia.

A partire da Internet Explorer 7 e da Firefox 2, l'uso di dati JSON di terzi espone il vostro sito Web ad attacchi di codice maligno ed a grandi rischi di sicurezza. Nel momento in cui chiedete i dati di terzi avete rinunciato a un controllo della vostra pagina Web ed i terzi possono fare qualunque cosa desiderano con esso, dall'accesso ai dati e relativa trasmissione indietro delle informazioni sensibili all'implementazione di strumenti che attendono l'immissione di dati sensibili da catturare.

Per la maggior parte delle fonti di fiducia l'unica cosa che una richiesta esterna di JSON otterrà sono dei dati. Tuttavia se la pagina che fa la richiesta dei terzi contiene gli elementi di moduli (form), richiede collegamento sicuro/cifrato (SSL), o contiene qualunque dato personale o dati confidenziali voi assolutamente, non utilizzate JSON di terzi parti su quella pagina.

Prima che tentiate di usare i dati JSON di terzi, guardate con attenzione alla pagina che state generando ed ora che immaginate cosa potrebbe fare con quella pagina una persona assolutamente priva di scrupoli. Se immaginate cosa quella persona può fare con le informazioni visualizzate a quella pagina, non utilizzate le chiamate JSON di terzi.

Alcuni servizi stanno cominciando offrire JSON oltre che RSS/XML come disposizioni di dati. Yahoo, in particolare, è abbastanza progressivo ad effettuare JSON. Che cosa è molto freddo circa JSON è che il Web page può direttamente chiedere e procedere quei dati, diverso di XML che deve essere chiesto dal server ed allora essere passato avanti al browser. Purtroppo non ci è campione di RSS/FEED per JSON, benchè la maggior parte dei servizi provino ad emulare RSS XML in una struttura di JSON.

Per il seguente esempio useremo i feed JSON di hunlock.com, una conversione di valore univoco semplice di XML a JSON. Il feed è generato dallo stesso programma che genera la versione di XML, solo le discussioni passate sul URL determinano quale disposizione è trasmessa. L'URL per il feed di hunlock.com è:
http://www.hunlock.com/feed.php?format=JSON&callback=JSONFeed 
Tutte le richieste JSON di terzi usano il metodo di chiamata ripetuta (callback) in cui, una volta che il file di JSON è stato caricato esso chiamerà una funzione specifica, passando i dati di JSON come primo argomento. La maggior parte dei servizi hanno un nome di funzione predefinito che essi richiamano, alcuni servizi permetteranno che cambiate il nome della funzione chiamata. Il feed di JSON di hunlock.com si chiama JSONFeed come nome predefinito, ma potete cambiare questo cambiando il nome nel URL. Modificare l'URL per verificare…
http://www.hunlock.com/feed.php?format=JSON&callback=processJSON 
… ora quando il feed è stato caricato esso chiamerà la funzione denominata processJSON e passerà i dati di JSON come primo argomento. Ciò è importante quando gestite richieste multiple di JSON alla vostra pagina.

Tutte le richieste di JSON di terzi sono caricati tramite la modifica del <script>, proprio come se caricaste un file .js esterno. La piccola differenza è che creiamo manualmente il tag <script> e lo colleghiamo alla pagina altrettanto manualmente. Questo è un processo ragionevolmente semplice, ed il codice per farlo è abbastanza semplice e leggibile. Ecco una piccola funzione che accetterà un URL e lo caricherà.
function loadJSON(url) {
  var headID = document.getElementsByTagName("head")[0];         
  var newScript = document.createElement('script');
      newScript.type = 'text/javascript';
      newScript.src = url;
  headID.appendChild(newScript);
}
Questa funzione ottiene (il primo) elemento di <head> della nostra pagina, genera un nuovo elemento dello script, gli attribuisce un type, regola l'attributo dello src secondo l'URL che viene passato ed allora collega il nuovo elemento dello script al <head> della pagina collegata. Una volta accodato, lo script sarà caricato ed eseguito.

Ecco un programma piccolo molto semplice per ottenere l'alimentazione di JSON di hunlock.com e per visualizzare gli articoli.
function loadJSON(url) {
  var headID = document.getElementsByTagName("head")[0];         
  var newScript = document.createElement('script');
      newScript.type = 'text/javascript';
      newScript.src = url;
  headID.appendChild(newScript);
}

function processJSON(feed){
  document.writeln(feed.title+'
');
  for(i=0; i");
     document.writeln(feed.channel.items[i].title+"
");
  }
}


loadJSON('http://www.hunlock.com/feed.php?format=JSON&callback=processJSON');
Questo codice crea una funzione per caricare i Javascript di terzi (loadJSON), e una funzione per elaborare i dati che riceve (processJSON). L'ultima riga di codice richiama loadJSON e gli passa l'URL. Una volta che lo script è stato caricato, automaticamente chiamerà processJSON (perché quello è il nome che abbiamo specificato nella chiamata ripetuta) e processJSON eseguirà un ciclo (loop) che creerà link a tutti gli articoli nel file del feed, mostrando il titolo dell'articolo come collegamento cliccable.
json.it by WebGuide
W3C XHTML - W3C CSS