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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Actualités Discussion :

ECMA International adopte JSON comme standard

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 448
    Points : 197 678
    Points
    197 678
    Par défaut ECMA International adopte JSON comme standard
    ECMA International adopte JSON comme standard,
    le format d'échange de données continue son ascension

    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 ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    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)

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 107
    Points : 132
    Points
    132
    Par défaut
    Il était temps, cette nouvelle me réjoui

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    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...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    JSON/BSON est aussi pas mal utilisé dans le nosql (big data pour employer des gros mots).

  6. #6
    Membre expert Avatar de air-dex
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 654
    Points : 3 774
    Points
    3 774
    Par défaut
    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 !
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 5
    Points : 13
    Points
    13
    Par défaut
    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.

  8. #8
    Membre éclairé
    Avatar de yimson
    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Janvier 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 215
    Points : 747
    Points
    747
    Par défaut
    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.

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 335
    Points : 511
    Points
    511
    Par défaut
    *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.

  10. #10
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    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

  11. #11
    Membre expert Avatar de air-dex
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 654
    Points : 3 774
    Points
    3 774
    Par défaut
    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.
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).

Discussions similaires

  1. ECMA International ratifie la norme JavaScript ECMA-262 Edition 5.1
    Par Hinault Romaric dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 16/07/2011, 17h11
  2. Réponses: 5
    Dernier message: 20/04/2011, 09h37
  3. Réponses: 0
    Dernier message: 18/04/2011, 15h28
  4. Fonctions asm internes dans les fonctions standards
    Par Montor dans le forum Contribuez
    Réponses: 7
    Dernier message: 14/12/2009, 08h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo