L'histoire derrière le formateur JSON
JSON est aujourd'hui le format parlé par la plupart des API web, et pourtant aucun comité ne l'a conçu. Il a été remarqué plutôt qu'inventé : un petit sous-ensemble de JavaScript qui suffisait tout juste à échanger des données entre programmes.
Un format découvert
Vers 2001, Douglas Crockford et ses collègues de State Software cherchaient un moyen pour qu'un navigateur et un serveur échangent des données sans plugin. Ils ont utilisé les littéraux d'objet et de tableau que JavaScript comprenait déjà, ont donné un nom à l'idée et publié la grammaire sur json.org, assez courte pour tenir au dos d'une carte de visite.
Pourquoi il n'y a pas de commentaires
Très tôt, Crockford a retiré les commentaires de JSON parce que certains y glissaient des directives pour l'analyseur, ce qui aurait cassé l'interopérabilité. Son conseil : supprimer les commentaires avec un minificateur avant l'analyse. C'est pourquoi un formateur signale un commentaire comme un caractère inattendu, et pourquoi des formats comme JSON5 et JSONC existent pour les fichiers de configuration.
D'une page web à une norme
JSON a d'abord été décrit dans la RFC 4627 en 2006. Ecma a publié ECMA-404 en 2013, et l'IETF a remplacé les anciens textes par la RFC 8259 en 2017, qui impose UTF-8 pour le JSON échangé entre systèmes. La grammaire a à peine changé depuis json.org : objets, tableaux, chaînes, nombres, true, false et null.
Nombres et chemins
JSON ne limite pas les nombres, mais la plupart des analyseurs les stockent en virgule flottante sur 64 bits, si bien que les entiers au delà de 9007199254740991 peuvent perdre de la précision sans prévenir. Les grands identifiants sont donc souvent envoyés en chaînes. Pour désigner une valeur, Stefan Goessner a proposé JSONPath en 2007, inspiré de XPath, devenu la norme RFC 9535 en 2024. Les chemins copiés par ce formateur suivent cette notation avec dollar et crochets.
Questions fréquemment posées
Qui a inventé JSON ?
Douglas Crockford a spécifié et popularisé JSON au début des années 2000, tout en disant l'avoir découvert, car c'est un sous-ensemble de JavaScript qui existait déjà.
Pourquoi JSON refuse les virgules finales et les guillemets simples ?
La grammaire a été gardée aussi petite que possible pour que chaque langage l'analyse de la même façon. Chaque facilité supplémentaire serait une occasion de désaccord entre deux analyseurs.
JSON est il la même chose qu'un objet JavaScript ?
Non. JSON est du texte. Les clés exigent des guillemets doubles, et les fonctions, undefined, les commentaires, NaN et Infinity sont interdits, même si JavaScript les accepte dans le code.
Prêt à l'essayer ?
Ouvrez PictorX dans votre navigateur – aucune installation, aucune carte de crédit requise pour démarrer.
Ouvrir le formateur JSON