Depuis quelque temps, on entend de plus en plus parler du JSON (se prononce Jason à l’anglaise). Nous allons donc voir, ce qui se cache derrière ces 4 lettres et pourquoi faut-il le préférer par rapport à du XML dans une application Ajax.
Quelques exembles
En XML :
L’équivalent en JSON :
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
En PHP
:
menu = new stdClass(); $objet->menu->id = ‘file’; $objet->menu->value = ‘File’; $objet->menu->popup = new stdClass(); $objet->menu->popup->menuitem = array(); $objet->menu->popup->menuitem[0] = new stdClass(); $objet->menu->popup->menuitem[0]->value = ‘New’; $objet->menu->popup->menuitem[0]->value = ‘CreateNewDoc()’; $objet->menu->popup->menuitem[1] = new stdClass(); $objet->menu->popup->menuitem[1]->value = ‘Open’; $objet->menu->popup->menuitem[1]->value = ‘OpenDoc()’; $objet->menu->popup->menuitem[2] = new stdClass(); $objet->menu->popup->menuitem[2]->value = ‘Close’; $objet->menu->popup->menuitem[2]->value = ‘CloseDoc()’; ?>
JSON utilise donc une syntaxe très simple :
{ }pour définir un objet,pour définir un tableau,:pour les affectations,'ou"pour encadrer les chaines.
Son utilisation
On utilise majoritairement JSON avec AJAX afin de transmettre des objets du serveur au client et vis versa.
En effet, il existe un grand nombre de classes (que vous trouverez ici par exemple) permettant d’encoder / décoder du JSON avec votre technologie serveur PHP, ASP, etc.
Avec PHP par exemple (en utilisant Service_JSON) :
Dans le serveur :
getInfos($_GET[’id’]); $json = new Services_JSON(); // on instancie l’encodeur / décodeur JSON echo $json->encode($objet); // on encode l’objet PHP en objet JSON et on l’affiche pour le récupérer via AJAX ?>
Dans le client (avec Prototype bien sur
):
var ajax = new Ajax.Request('server.php', {
method: 'get',
parameters: 'id=10',
onSuccess: function(request) { var objet = eval('('+request.responseText+')'); alert(objet); },
onFailure: function() { alert('Erf ça marche pas !'); }
});
var objet = eval('('+request.responseText+')'); permet d’évaluer la syntaxe JSON pour définir l’objet Javascript.
Conclusion
Vous l’aurez compris JSON est donc un excellent moyen de faire communiquer PHP et Javascript dans le cadre d’une application Web 2.0.
Sa syntaxe est très légère à coté d’XML, grâce à ce moyen de transport, inutile donc de vous encombrer d’un parser XML en Javascript.
Documentation
Retrouvez plus d’informations sur :
