Json è un formato di testo indipendente dal linguaggio che usa convenzioni simili a quelle della famiglia dei linguaggi C.
Si basa su due strutture di dati supportate praticamente da tutti i linguaggi di programmazione moderni:
• una raccolta di coppie nome/valore [oggetti, record, dizionari…]
• una raccolta ordinata di valori [array…]
Inoltre Json è basato su un sottoinsieme di Javascript Standard, quindi non ci dovrebbero essere problemi di compatibilità con i vari browser.
**
Oggetto json**
insieme ordinato di coppie nome/valore. inizia e termina con una parentesi graffa{};
**
Array Json**
raccolta ordinata di valori che inizia e termina con le parentesi quadre [];
**
Valore Json**
Vengono separati da una virgola e possono essere: Stringa, numero, true e false, oggetto, array, null
In particolare il vanto di Json è di essere un formato di scambio molto più leggero di xml.
**
Esempio di utilizzo Json
**
File Json
json.js
File html con i form da cui far partire il nostro esempio
json_first.html
function doJSON() {<br />
var user = getUserObject();<br />
var userAsJSON = JSON.stringify(user);<br />
alert("ecco l'oggetto User di Json :n " + userAsJSON);<br />
var url = "json_first.php?timeStamp=" + new Date().getTime();<br />
var postVar= 'user_data='+encodeURIComponent(userAsJSON);<br />
createXMLHttpRequest();<br />
xmlHttp.open("POST", url, true);<br />
xmlHttp.onreadystatechange = handleStateChange;<br />
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");<br />
xmlHttp.send(postVar);<br />
}
La funzione crea un oggetto User con i valori della form,
<br />
function getUserObject() {<br />
return new User(document.dati.username.value, document.dati.mail.value);<br />
}<br />
function User(username, mail) {<br />
this.username = username;<br />
this.mail = mail;<br />
}
e lo invia via Post in formato Json al server sotto forma d querystring:
Ecco il post della pagina:
user_data {“username”:”bonzo”,”mail”:”ilbonzo.org@gmail.com”}
La pagina php processa i dati e li rimanda alla prima pagina
json_first.php
$jsonString= stripslashes($_POST['user_data']);<br />
var_dump(json_decode($jsonString));<br />
$jsonPost=json_decode($jsonString);<br />
echo 'username: ';<br />
echo $jsonPost->username;<br />
echo ' mail: ';<br />
echo $jsonPost->mail;
L’esempio è molto semplice, ma serve solo per capire le potenzialità di Json e Ajax.
Scarica esempio
*Nota:
*Json su PHP si può usare dalla versione 5.2, prima serviva il repository PECL.
Gabba Gabba Hey
Bonzo