JeuWeb - Crée ton jeu par navigateur
cherche un tutorial JSON - javascript - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : cherche un tutorial JSON - javascript (/showthread.php?tid=4531)

Pages : 1 2


RE: cherche un tutorial JSON - javascript - Sephi-Chan - 14-01-2010

JSON signifie JavaScript Object Notation.

Le JSON est juste une façon de sérialiser un objet : l'écrire sous forme d'une chaîne de caractère. Il est pris en charge à partir du moment où le langage qui va manipuler cet objet JSON est capable d'en faire un objet à lui (par exemple, PHP est capable de transformer un objet JSON en objet PHP, comme le montrait mon exemple). En l'occurrence, la majorité des langages disposent de tels outils (la liste exhaustive est sur json.org).

Côté navigateur, le langage qu'on va utiliser est Javascript qui comprend cette notation JSON très bien puisqu'elle s'inspire justement de la façon de représenter un objet en Javascript. On peut donc simplement évaluer notre objet JSON (une chaîne de caractères, donc) comme du Javascript. Le soucis, c'est que ça présente des problèmes de sécurité. Pour pallier à ça, il existe des librairies, dont la référence : JSON2.

Ensuite, il y a — sur les navigateurs récents (IE8 inclus) — une prise en charge dite native d'un objet JSON. Cela signifie que le développeur n'a pas à utiliser eval pour rendre l'objet utilisable : c'est le navigateur qui se charge de ça.

Pour la petite histoire, l'API JSON inclue dans Javascript pour ce support natif est celle utilisée par Douglas Crockford dans sa librairie JSON2. En utilisant cette librairie, vous utiliserez de manière transparente le support JSON natif du navigateur, s'il est disponible. C'est sûr, rapide et fiable.



Sephi-Chan


RE: cherche un tutorial JSON - javascript - Sephi-Chan - 14-01-2010

(14-01-2010, 01:02 PM)Ter Rowan a écrit : json est interprété non nativement et nécessite une bibliothèque
xml est interprété non nativement et nécessite du code

à chacun de voir, pour moi l'un n'est pas meilleur que l'autre dans l'absolu (sinon il aurait été abandonné) mais est plus adapté à certains programmeurs

Tu oublies quelques avantages de poids en faveur de JSON. Il est géré nativement par beaucoup de navigateurs et est donc bien plus performant qu'un parser maison ou qu'une librairie comme JSON2 (qui utilise de manière transparente le support natif s'il est disponible. De plus, il est moins verbeux et donc plus économique en terme de transferts.

Javascript est vraiment fait pour travailler avec JSON. Le seul intérêt d'XML, c'est encore de proposer XPath. C'est une qualité notable, certes, mais encore faut-il en avoir le besoin.

Pour t'en convaincre, un petit billet sur Ajaxians - JSON vs. XML: The Debate. Ça date de Janvier 2007, et XML faisait déjà la gueule alors que le support natif n'était pas encore là. Wink


Sephi-Chan


RE: cherche un tutorial JSON - javascript - Roworll - 14-01-2010

(14-01-2010, 01:02 PM)Ter Rowan a écrit : j'ai vu sur le forum que d'autres avaient eu le même soucis que moi et finalement avait mis en place une couche javascript interprétant le responseText, ce qui permettait de garantir l'interprétation d'un noeud (je crois que c'était rowoll qui avait posté mais pas sûr)

Je confirme, ça doit être moi.
Môssieur IE faisant sa tête de mule comme d'habitude, j'étais passé par le responseText converti via XMLDOM / Domparser pour une exploitation via JS.

Actuellement, j'ai étendue mes classes pour un double support XML/JSON dans le transfert de données. Modification mineure pour une versatilité augmentée. Ça permet au programme client de demander les informations selon le format qui lui convient le mieux. Au boulot, je bosse en coopération sur un projet qui partage des données entre plusieurs système (AS400 / Window) et vu les données qui doivent transiter, le XML s'est naturellement imposé comme plateforme d'échange.

Globalement, je garde cependant une préférence pour le XML car même si on peut le considérer comme trop bavard pour des communications web, il garde quand même quelques avantages majeurs.

Le DTD et les blocs CDATA en font partie.
- DTD pour valider le document reçu par un modèle défini.
- CDATA pour l'envoi de blocs exotiques/binaires/de grande taille.

Maintenant, niveau Web, JSON est en effet plus léger. Au final, je m'en sers pour mes communications AJAX en m'appuyant sur Mootools pour décoder les retours. La communication principale elle est toujours faite à base d'XML/XSLT.On ne se refait pas.

[Edit]
Les efforts de Grosoft, même s'ils restent relatifs semblent aller dans le bon sens. Support JSON dans un premier temps et support SVG annoncé pour IE9.


RE: cherche un tutorial JSON - javascript - php_addict - 15-01-2010

vous allez pas le croire mais j'ai galéré pendant 3 heure sur mon code car mon script php qui generait le fichier JSON contenait des retour a la ligne, et ca ne fonctionnait seulement qu'avec firefox...

voila, c'est dit, si ca peut servir a quelqu'un, et si ca peut lui eviter de perdre 3 heures betement...


RE: cherche un tutorial JSON - javascript - Sephi-Chan - 15-01-2010

Pour éviter ça, tu peux construire ta réponse sous forme d'un objet puis faire un json_encode() avec cet objet en argument. Comme ça tu es sûr d'avoir du JSON bien formé.


$response = new StdClass();
$response->message = "Moi j'aime le pâté !";
$response->status = 200;
$response->selected_items = array(1, 2, 8);

echo json_encode($response);


Le JSON affiché :


{"message":"Moi j'aime le p\u00e2t\u00e9 !","status":200,"selected_items":[1,2,8]}


Sephi-Chan


RE: cherche un tutorial JSON - javascript - php_addict - 15-01-2010

merci Sephi-Chan :-)

j'avais resolu en faisant un variable $MonJson='{"message":"Moi j'aime le p\u00e2t\u00e9 !","status":200,"selected_items":[1,2,8]}';

mais je passerais peut être en objet, merci d conseil

J'allais oublier:

Pour utiliser JSON.parse, certain navigateur n'ont pas la librairie JS deja implanter, il faut inclure la librairie JSON (pour opera, IE notament)

a+


RE: cherche un tutorial JSON - javascript - Sephi-Chan - 15-01-2010

En fait, il te suffit de toujours charger la librairie JSON2 : elle utilisera d'elle même l'API JSON du navigateur, s'il la propose.


Sephi-Chan


RE: cherche un tutorial JSON - javascript - R-transat - 15-01-2010

Je ne sais pas si ça peut t'aider, mais il y a un tuto vidéo ici : http://www.grafikart.fr/tutoriels/video/json-77