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.

Accolades et blocs de données imbriqués formant un arbre lumineux
Accolades et blocs de données imbriqués formant un arbre lumineux

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