IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

ECMA International adopte JSON comme standard
Le format d'échange de données continue son ascension

Le , par Stéphane le calme

94PARTAGES

6  0 
JSON (JavaScript Object Notation) a été adopté comme standard ECMA suite à un vote de l'Assemblée Générale. Cette nouvelle norme s'est vue attribuer le numéro 404, ce qui ne manque pas de rappeler celui du code d’erreur du protocole de communication HTTP sur le réseau Internet, renvoyé par un serveur HTTP pour indiquer que la ressource demandée (généralement une page web) n’existe pas.

Rappelons que JSON se base sur deux types de structures de données :

  • une collection de couples nom/valeur. Divers langages la réifient par un objet, un enregistrement, une structure, un dictionnaire, une table de hachage, une liste typée ou un tableau associatif ;
  • une liste de valeurs ordonnées. La plupart des langages la réifient par un tableau, un vecteur, une liste ou une suite.


Parmi les avantages qu'offre ce langage, nous pouvons citer :

  • la simplicité de la mise en œuvre ;
  • la lisibilité du code ;
  • sa syntaxe réduite et non extensible qui facilite l'apprentissage ;
  • des types de données connus (objets, tableaux, valeurs génériques de type tableau, objet, booléen, nombre, chaîne ou null).


Bien que basé sur JavaScript, JSON est complètement indépendant de tout langage de programmation. Toutefois, les conventions qu'il utilise seront familières à tout programmeur habitué aux langages descendant du C (C, C++, C#, Java, JavaScript, Perl, Python etc). Par exemple un tableau commence par "[" (crochet gauche) et se termine par "]" (crochet droit). Les valeurs sont séparées par "," (virgule).

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. Il peut aussi être utilisé pour la sérialisation et désérialisation d’objets ou l’encodage de documents. Des bibliothèques pour JSON existent dans la plupart des langages de programmation.

Source : ECMA-404 (au format PDF)

Et vous ?

Avez-vous déjà utilisé JSON ? Qu'en pensez-vous ?

Avez-vous déjà utilisé un autre format d'échange de données ? Si oui lequel ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de flow10000
Membre habitué https://www.developpez.com
Le 16/10/2013 à 14:43
Il était temps, cette nouvelle me réjoui
1  0 
Avatar de Bylon
Membre à l'essai https://www.developpez.com
Le 16/10/2013 à 21:27
Citation Envoyé par air-dex Voir le message
JSON est donc censé être particulièrement interopérable avec JavaScript et donc sa célèbre gestion des entiers à 64 bits. Cela amène des joyeusetés comme celle de ce bug de Qt dont la résolution est entravée par ces considérations là. Paye ton indépendance !
Je ne vois pas ce que a à voir avec la RFC4627 !
C'est un bug de QtJSON, pas de JSON.

La "norme" ne précise absolument pas de longueur limite aux nombres.
A la limite on pourrait dire que ça mériterait d'être précisé, sinon ça devient "parser-dépendant"... à moins qu'on utilise un parser-mode-sax avec des callbacks, auquel cas c'est à l'utilisateur de la librairie de se débrouiller avec la longueur/précision des nombres.

Du reste, pour ce qui est des nombres, la norme JSON est assez étrange.
Elle autorise des choses qui n'ont pas trop de sens comme :
0.0E+27

Mais interdit des notations que 99.9% des langages acceptent comme :
.2

JSON présente aussi un inconvénient par rapport à des choses mieux normalisées comme XML : il y a de l'implicite.

Par exemple sur le codage utilisé.
En réalité il n'est pas "explicité" comme en XML où on doit indiquer "encoding".

Certes la norme dit que ça doit être de l'UTF, et donne un moyen de "deviner"... mais tout ça reste alors empirique. Et tout ce qui n'est pas clairement explicité (par exemple avec "encoding" finit un jour ou l'autre par vous péter à la figure !..

Sinon, à part ça, JSON est sympathique par sa compacité... comme par la compacité de sa norme qui la rend facile à implémenter.
1  0 
Avatar de sekaijin
Expert éminent https://www.developpez.com
Le 20/10/2013 à 12:43
Nous avons adopté JSON comme représentation d'un Objet sous forme de String en JAVA

Pour les classes de nos frameworks, la méthode toString retourne une représentation JSON. Cela offre de la souplesse lorsqu'on souhaite inspecter un objet.

Nous avons aussi adopté ce format pour JMX. Nos méthodes exposées en JMX retournent des fragments JSON. Du coup lorsqu'on utilise un outil de base pour accéder à une méthode, on obtient quelque chose d'humainement lisible (même si c'est gros) et on peut le traiter lorsqu'on y accède via un utilitaire spécifique.

par contre pour moi JSON ne replace pas XML. même si les deux on des dommaine d'usage qui se recouvre les deux on aussi des dommaines disjoints.

Pour moi JSON est un format structuré faiblement typé. XML est lui équipé pour définir des contraintes de type bien plus fortes. Suivant le besoin l'un ou l'autre à l'avantage.
De même dans le transport d'information si le besoin est un transport simple sans transformation. JSON est intéressant, car simple et léger. Il offre l'avantage d'être souple. Mais nécessite de toujours vérifier la présence des éléments attendus dans l'échange. XML lui permet de contraindre le format et de garantir que l'échange est conforme à une structure précise. Il offre l'avantage de disposer de nombreux outils de transformation.

A+JYT
1  0 
Avatar de Traroth2
Membre émérite https://www.developpez.com
Le 16/10/2013 à 14:10
J'ai déjà utilisé JSON, dans un contexte REST, mais pas seulement. Et j'ai aussi utilisé différents formats basés sur XML, comme SOAP.

JSON est plus compact, il est plus orienté vers la sérialisation d'objet (j'ai parsé du JSON avec JsonPath, et j'avais l'impression de commettre un pêché mortel ), et de par ses origines, clairement orienté Javascript (ce qui peut en fait avoir un intérêt assez limité, par exemple si on fait un appel Rest d'un serveur Java à un autre). C'est une alternative intéressante à XML, mais ça ne change pas la face du monde. Je le trouve un peu moins évident à lire par un humain, mais c'est peut-être personnel (c'est la salade d'accolades et de crochets qui me dérange)
0  0 
Avatar de jhenaff
Futur Membre du Club https://www.developpez.com
Le 16/10/2013 à 15:46
J'espère juste qu'ils intégreront la notion de commentaires "/* */" dans la norme.
C'est le seul point négatif du JSON pour le moment vu qu'on ne peut pas commenter les data...
0  0 
Avatar de ejorge
Futur Membre du Club https://www.developpez.com
Le 16/10/2013 à 16:13
JSON/BSON est aussi pas mal utilisé dans le nosql (big data pour employer des gros mots).
0  0 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 16/10/2013 à 16:16
Citation Envoyé par Stéphane le calme Voir le message
Avez-vous déjà utilisé JSON ? Qu'en pensez-vous ?
Je l'ai déjà utilisé et je le trouve lisible.

Citation Envoyé par Stéphane le calme Voir le message
Bien que basé sur JavaScript, JSON est complètement indépendant de tout langage de programmation.
C'est vite dit. JSON est aussi régi par la spécification RFC 4627. On y trouve le passage suivant :

Citation Envoyé par RFC 4627
Generally there are security issues with scripting languages. JSON is a subset of JavaScript, but it is a safe subset that excludes assignment and invocation.

A JSON text can be safely passed into JavaScript's eval() function (which compiles and executes a string) if all the characters not enclosed in strings are in the set of characters that form JSON tokens. This can be quickly determined in JavaScript with two regular expressions and calls to the test and replace methods.
JSON est donc censé être particulièrement interopérable avec JavaScript et donc sa célèbre gestion des entiers à 64 bits. Cela amène des joyeusetés comme celle de ce bug de Qt dont la résolution est entravée par ces considérations là. Paye ton indépendance !
1  1 
Avatar de yimson
Membre éclairé https://www.developpez.com
Le 17/10/2013 à 0:51
J'ai utilisé JSON seulement dans un contexte académique.
Je souhaite vraiment mettre en œuvre ce langage dans
un réel projet Web services. Si vous avez des documents
ou même des liens, à me conseiller dans ce sens alors
je suis preneur.
0  0 
Avatar de deltree
Membre confirmé https://www.developpez.com
Le 17/10/2013 à 13:33
*Avez-vous déjà utilisé JSON ? Qu'en pensez-vous ?
J'utilise JSON dans tous les service REST en web service java/javascript.
je le trouve aussi super pratique comme configuration de programme Javascript.
Pour moi c'est le successeur de XML qu'il pourrait remplacer à tous les niveaux: configuration et transport de données.

*Avez-vous déjà utilisé un autre format d'échange de données ? Si oui lequel ?
J'utilise aussi le YAML, qui se transforme bijectivement en JSON.
Pour ceux qui sont allergiques aux {*de javascript, YAML c'est en gros du JSON sans les accolades.
0  0 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 22/10/2013 à 0:12
Citation Envoyé par Bylon Voir le message
Je ne vois pas ce que a à voir avec la RFC4627 !
C'est un bug de QtJSON, pas de JSON.
Je sais bien. C'est juste que ceux devant résoudre le bug se planquent derrière cette RFC pour justifier sa non correction (à tort). Les motifs invoqués sont du style "JSON n'a pas à traiter les entiers longs de 64 bits [à cause du JavaScript] donc ce n'est pas un problème", le tout avec la RFC pour justifier leurs propos. C'est bête mais c'est la réalité de la résolution de ce bug de Qt.
0  0