Blogbonzo: Matteo Magni

Consulente Informatico, Web Developer & System Administrator

Json e Ajax accoppiata vincente

leave a comment

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() {
var user = getUserObject();
var userAsJSON = JSON.stringify(user);
alert("ecco l'oggetto User di Json :\n " + userAsJSON);
var url = "json_first.php?timeStamp=" + new Date().getTime();
var postVar= 'user_data='+encodeURIComponent(userAsJSON);
createXMLHttpRequest();
xmlHttp.open("POST", url, true);
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send(postVar);
}

La funzione crea un oggetto User con i valori della form,

function getUserObject() {
return new User(document.dati.username.value, document.dati.mail.value);
}
function User(username, mail) {
this.username = username;
this.mail = mail;
}

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']);
var_dump(json_decode($jsonString));
$jsonPost=json_decode($jsonString);
echo 'username: ';
echo $jsonPost->username;
echo ' mail: ';
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

Written by Bonzo

luglio 17th, 2007 at 12:11 am

Posted in Programmazione, ajax, php

Leave a Reply