Utiliser JSON comme format de données de retour d'une requête Ajax
Par Pascal MARTIN le mardi 16 janvier 2007, 08:00 - Développement Web - Lien permanent
AJAX[1] est une méthode permettant d'envoyer des requêtes en arrière-plan à un serveur, généralement en vue d'obtenir des données en réponse...
Et qui dit données dit format de données... Voire même, comme ici, format d'échange de données.
XML vs JSON
De par la définition même d'AJAX, le format d'échange de données utilisé à l'origine pour les requêtes Ajax est le XML.
XML
XML présente de nombreux avantages, dont :
- C'est un format texte, donc, lisible par n'importe qui - contrairement à un format binaire, qui nécessite un logiciel de décodage.
- C'est un format structuré : les données peuvent être imbriquées, pour former des schémas complexes, à même de répondre à la plupart des besoins.
- C'est un format largement répandu : il est possible de créer, lire, et manipuler un document XML dans le très nombreux langages.
- C'est un format ouvert : sa spécification est librement accessible par tous.
Mais créer un document XML est complexe et lourd... De même que le lire par la suite.
Souvenez-vous de l'exemple que j'avais donné à propos de la propriété responseXML de l'objet XMLHttpRequest...
JSON
D'un autre côté, lorsque nous utilisons de l'Ajax pour échanger des informations entre un script côté client et un serveur, le script côté client est généralement programmé en JavaScript... Alors, pourquoi ne pas employer un format de données plus facilement utilisable en JavaScript ?
Ce qui compte, finalement, c'est de conserver les avantages que nous avons présenté plus haut pour le XML.
Pour information, voici quelques liens traitant de "JSON vs XML" :
Quelques rappels concernant JSON
Pour commencer, je vous conseille de jeter un coup d'oeil sur mon article "JSON - JavaScript Object Notation : Présentation", qui vous permettra de comprendre ce qu'est JSON, en insistant sur la notion de JSON valide.
En résumant très rapidement, JSON est un format que l'on peut utiliser pour représenter des objets sous forme d'une chaîne de caractères, en utilisant une notation compatible avec JavaScript.
Les types de données que JSON accepte sont numérique (18, 45.25), chaînes de caractères ("Hello World!"), booléens (true, false), tableaux, objets, et null.
Attention : les chaînes de caractères doivent être entourées de guillemets doubles.
Pour vous assurer de la validité d'une chaîne JSON avant de l'évaluer, vous pouvez utiliser le code suivant :
var monObjet = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/|>.test( text.replace(/"(\\.|[^"\\])*"/g, ''))) && eval('(' + text + ')');
Pour être averti lors de la publication de nouvelles entrées, n'hésitez pas à vous abonner au flux RSS ou ATOM des articles de mon blog !
Commentaires
c'est le premier qui donne vraiment comment générer les bons http headers pour que prototype reconnaisse les données comme étant bien des JSON
bonnes continuations
Merci !
Merci .
Bonjour, j'aimerais savoir s'il est possible et dans ce cas comment faire pour faire une requete ajax qui transmette du JSON contenant des données confidentielles mais non visibles.
Merci pour votre aide.
Bonjour,
A partir du moment où il y a un échange entre le navigateur et le serveur, il y a une information accessible côté client ; donc l'utilisateur peut y accéder.
Si votre question porte plus sur la non-interception par un tiers des données transitant sur le réseau, la solution est probablement d'utiliser HTTPS pour votre site, et non HTTP.
Merci pour ce tutoriel