JavaScript Object Notation - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

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.

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 :

        id="file" value="File">         >            value="New" onclick="CreateNewDoc()" >            value="Open" onclick="OpenDoc()" >            value="Close" onclick="CloseDoc()" >         >       >      

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 et est maintenant répandu dans les applications Web 2.0, telle que Google’s toolkit Applications. Des améliorations sont prévues pour y ajouter des arguments.

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

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      */      

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 :

  • la sérialisation et déserialisation d’objets ;
  • l’encodage de documents ;
  • les fichiers de configuration.

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 œuvre 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 de peu de limitations) ;
  • ses types de données sont connus et simples à décrire.
Page générée en 0.074 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise