JSON

JSON

JavaScript Object Notation

JSON (JavaScript Object Notation) est un format de données textuel, générique, dérivé de la notation des objets du langage ECMAScript. Il permet de représenter de l'information structurée. Créé par Douglas Crockford, il est décrit par la RFC 4627 de l’IETF.

Sommaire

Structure d'un document JSON

Un document JSON ne comprend que deux éléments structurels :

  • des ensembles de paires nom / valeur ;
  • des listes ordonnées de valeurs.

Ces mêmes éléments représentent 3 types de données :

Exemple

Format JSON :

 {"menu": {
   "id": "file",
   "value": "File",
   "popup": {
     "menuitem": [
       {"value": "New", "onclick": "CreateNewDoc()"},
       {"value": "Open", "onclick": "OpenDoc()"},
       {"value": "Close", "onclick": "CloseDoc()"}
     ]
   }
 }}


À titre de comparaison, le même exemple en XML :

 <menu id="file" value="File">
   <popup>
     <menuitem value="New" onclick="CreateNewDoc()" />
     <menuitem value="Open" onclick="OpenDoc()" />
     <menuitem value="Close" onclick="CloseDoc()" />
   </popup>
 </menu>

JSONP

JSONP pour JSON with padding (en français, « JSON avec formatage ») est une extension dans laquelle le nom de la fonction de retour est indiqué. L'idée originale proviendrait du blogue MacPython en 2005[1] et est maintenant répandu dans les applications Web2.0, telle que Google's toolkit Applications[2]. Des améliorations sont prévues pour y ajouter des arguments[3].

JSONP utilise des balises de scripts, les appels sont ouverts. Ainsi, JSONP peut être inapproprié pour transporter des informations confidentielles.[4]

Commentaires

Les commentaires ne sont pas prévus par les spécifications JSON, cependant la plupart des scripts d'analyse JSON prennent en compte les commentaires comme en javascript :

// Commentaires en fin de ligne
 
/*
commentaires en bloc
*/

Avantages

Ces types de données sont suffisamment génériques et abstraits pour, d'une part, pouvoir être représentés dans n'importe quel langage de programmation, d'autre part, pouvoir représenter n'importe quelle donnée concrète.

Le principal avantage de JSON est qu'il est simple à mettre en oeuvre par un programmeur tout en étant complet.

Au rang des avantages, on peut également citer :

  • peu verbeux, ce qui le rend lisible aussi bien par un humain que par une machine ;
  • facile à apprendre, car sa syntaxe est réduite et non-extensible (bien que ne souffrant que peu de limitations) ;
  • ses types de données sont connus et simples à décrire.

Utilisation

Bien qu'utilisant une notation JavaScript, JSON est indépendant du langage de programmation. Le site officiel présente (en août 2005) des solutions d'intégration de JSON pour 33 langages de programmation. Il sert à faire communiquer des applications dans un environnement hétérogène. Il est notamment utilisé comme langage de transport de données par AJAX et les services Web. D'autres solutions sont possibles comme XML. Le type MIME application/json est utilisé pour le transmettre par le protocole HTTP.

Vis-à-vis de JavaScript, un document JSON représente un objet, d'où son nom. Il est donc potentiellement plus facile à interpréter qu'un XML qui imposera le recours à des techniques, souvent plus lourdes qu'un accès direct, telle que le parcours hiérarchique de l'arbre DOM représenté par le document entier.

Il peut aussi être utilisé pour :

Évaluation

En JavaScript, il est simple d'évaluer une expression JSON pour la transformer en objet natif :

 var donnees = eval('('+donnees_json+')');

Cette méthode comporte toutefois des risques car la chaîne de caractères donnees_json peut contenir n'importe quel code JavaScript. Il existe une méthode plus sûre qui consiste à parser la chaîne de caractères donnees_json, seule solution disponible dans les autres langages de programmation, à l'exception de Python, la syntaxe de JSON correspondant à ses deux types principaux : les listes et les dictionnaires.

Performances

Du point de vue du temps de traitement, évaluer une expression JSON en JavaScript est à peu de choses près aussi efficace que traiter son équivalent XML. Par contre, parser la même expression JSON est plus long : les traitements à effectuer sont plus intensifs.

Notes et références

Liens externes

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « JavaScript Object Notation ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article JSON de Wikipédia en français (auteurs)

Игры ⚽ Нужен реферат?

Regardez d'autres dictionnaires:

  • JSON — Расширение .json MIME application/json Тип формата Data interchange Расширен из JavaScript Стандарт(ы) RFC 4627 Сайт …   Википедия

  • JSON — JSON, acrónimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de JavaScript que no requiere el uso de XML. La simplicidad de JSON ha dado lugar a la… …   Wikipedia Español

  • JSON — infobox file format mime = application/json extension = .json genre = Data interchange standard = RFC 4627JSON (pronEng|ˈdʒeɪsɒn, i.e., Jason ), short for JavaScript Object Notation, is a lightweight computer data interchange format. It is a text …   Wikipedia

  • Json — JavaScript Object Notation JSON (JavaScript Object Notation) est un format de données textuel, générique, dérivé de la notation des objets du langage ECMAScript. Il permet de représenter de l information structurée. Créé par Douglas Crockford, il …   Wikipédia en Français

  • JSON — Die JavaScript Object Notation, kurz JSON (IPA: /ˈdʒeɪsʌn/), ist ein kompaktes Computer Format in für Mensch und Maschine einfach lesbarer Textform zum Zweck des Datenaustauschs zwischen Anwendungen. Obwohl der Name auf eine alleinige Verwendung… …   Deutsch Wikipedia

  • JSON-RPC — is a remote procedure call protocol encoded in JSON. It is a very simple protocol (and very similar to XML RPC), defining only a handful of data types and commands. In contrast to XML RPC or SOAP, it allows for bidirectional communication between …   Wikipedia

  • JSON-RPC — (JavaScript Object Notation Remote Procedure Call) ist ein Protokoll zum Aufruf entfernter Methoden in Computersystemen, ähnlich wie XML RPC (die Daten werden jedoch in JSON statt in XML gesendet).[1] Bei der Spezifikation wurde darauf geachtet,… …   Deutsch Wikipedia

  • JSON — JavaScript Object Notation (Computing) …   Abbreviations dictionary

  • JavaScript Object Notation — JSON (JavaScript Object Notation) est un format de données textuel, générique, dérivé de la notation des objets du langage ECMAScript. Il permet de représenter de l’information structurée. Créé par Douglas Crockford, il est décrit par la RFC 4627 …   Wikipédia en Français

  • JavaScript Object Notation — Die JavaScript Object Notation, kurz JSON (IPA: /ˈdʒeɪsʌn/), ist ein kompaktes Datenformat in für Mensch und Maschine einfach lesbarer Textform zum Zweck des Datenaustauschs zwischen Anwendungen. Jedes gültige JSON Dokument soll ein gültiges… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”