BrowserTools
Publicité
Accueil / Validateurs / Validateur et formateur JSON

Validateur et formateur JSON

Validez, formatez et minifiez du JSON dans votre navigateur avec l'emplacement précis des erreurs.

Chargement de Validateur et formateur JSON… Si rien ne se passe, activez JavaScript.

JSON (JavaScript Object Notation) est un format d'échange de données léger et lisible par l'humain, fondé sur un sous-ensemble de la syntaxe JavaScript. Il a été popularisé par Douglas Crockford au début des années 2000 comme alternative plus simple au XML pour échanger des données entre clients et serveurs web. Normalisé sous le nom de RFC 4627 en 2006, puis ECMA-404 et RFC 8259, le JSON est devenu la langue universelle des API web, des fichiers de configuration et du stockage de données. Ses six types de valeur (chaîne, nombre, booléen, null, tableau et objet) correspondent proprement aux structures de données de pratiquement tous les langages de programmation.

Exemples

Entrée {"name":"Ada","age":36}
Sortie Valid · object with 2 keys
Entrée {'name': 'Ada'}
Sortie Invalid · property names must use double quotes

Le JSON est plus strict qu'un littéral d'objet JavaScript : pas d'apostrophes, pas de virgules finales.

Questions fréquentes

Mon JSON est-il envoyé à un serveur ?
Non. L'analyse et la mise en forme se font entièrement dans votre navigateur grâce aux fonctions natives JSON.parse et JSON.stringify intégrées au moteur JavaScript. Vos données ne quittent jamais votre appareil, ce qui permet d'utiliser cet outil en toute sécurité avec des réponses d'API, des exports de bases de données ou toute charge JSON confidentielle.
Quelles sont les règles exactes qui rendent un JSON valide ?
Le JSON a une grammaire stricte définie par le RFC 8259 et ECMA-404. Les clés doivent être des chaînes entre guillemets doubles. Les valeurs de chaîne doivent utiliser des guillemets doubles, pas des apostrophes. Les virgules finales après le dernier élément d'un objet ou d'un tableau sont interdites. Les commentaires ne sont pas autorisés. Les nombres ne peuvent pas avoir de zéros en tête ni de point décimal final. Le document doit contenir exactement une valeur de premier niveau (un objet, un tableau, une chaîne, un nombre, un booléen ou null).
Quelle est la différence entre formater et minifier du JSON ?
Formater (aussi appelé embellir) ajoute des sauts de ligne et de l'indentation pour rendre la structure visuellement claire et facile à lire pour l'humain. Minifier supprime tous les espaces inutiles (espaces, tabulations et sauts de ligne) pour produire la chaîne JSON valide la plus compacte. Le JSON minifié est utilisé dans les réponses d'API de production et les fichiers de configuration où chaque octet de bande passante ou de stockage compte ; le JSON formaté est utilisé dans le contrôle de version, la documentation et le débogage.
En quoi le JSON diffère-t-il de la syntaxe des littéraux d'objet JavaScript ?
Le JSON est un sous-ensemble strict de la syntaxe des valeurs JavaScript, mais les deux ne sont pas identiques. Le JSON exige des clés et des valeurs de chaîne entre guillemets doubles ; les littéraux d'objet JavaScript autorisent des clés sans guillemets ou entre apostrophes. Le JSON interdit les virgules finales, les commentaires, les valeurs undefined, les fonctions et les clés de type symbole, tous valides en JavaScript. JSON.parse est volontairement strict sur ces règles afin que le JSON puisse être analysé en toute sécurité par des systèmes non JavaScript.
Quelle taille de JSON puis-je valider et formater ?
L'outil accepte du JSON de n'importe quelle taille, mais des limites pratiques existent. Les charges allant jusqu'à plusieurs mégaoctets sont analysées et formatées en quelques millisecondes. Les très gros documents (des dizaines de mégaoctets ou plus) peuvent provoquer des ralentissements visibles ou une pression mémoire dans l'onglet du navigateur. Pour traiter des fichiers JSON extrêmement volumineux (journaux de serveur, exports de données), des outils en ligne de commande comme jq sont plus appropriés.
Le validateur prend-il en charge JSON5 ou JSONC (JSON avec commentaires) ?
Non. Cet outil utilise la grammaire JSON stricte définie par le RFC 8259, qui interdit les commentaires et les virgules finales. JSON5 et JSONC sont des extensions non officielles qui autorisent ces fonctionnalités. De nombreux formats de fichiers de configuration (le tsconfig.json de TypeScript, les paramètres de VS Code) utilisent JSONC mais sont analysés par des analyseurs spécialisés plus permissifs que le JSON.parse standard. Si votre saisie utilise ces extensions, il vous faut un analyseur JSONC ou JSON5.
Puis-je l'utiliser pour formater du JSON à l'intérieur d'une chaîne (JSON échappé) ?
Si vous avez une chaîne JSON intégrée dans une autre chaîne JSON, avec ses guillemets internes échappés en \", vous devez d'abord décoder le JSON externe pour extraire la chaîne interne, puis l'analyser et la formater séparément. Un cas fréquent est celui des messages d'erreur d'API qui incluent une charge JSON brute comme valeur de chaîne. Vous pouvez coller tout le document externe, copier la valeur de chaîne échappée et la coller pour une seconde passe de mise en forme.
Le JSON est-il identique au BSON ou au MessagePack ?
Non. Le JSON est un format texte ; le BSON (JSON binaire) et le MessagePack sont des formats de sérialisation binaires qui encodent les mêmes types logiques de données que le JSON, mais dans une représentation binaire compacte plutôt qu'en texte UTF-8. Le BSON est utilisé en interne par MongoDB et prend en charge des types supplémentaires comme les dates et les données binaires. Le MessagePack sert à la communication haute performance entre services. Un outil JSON ne peut pas analyser directement du BSON ou du MessagePack.
Pourquoi le message d'erreur n'affiche-t-il que la première erreur ?
JSON.parse s'arrête à la première erreur de syntaxe rencontrée, car les jetons suivants peuvent être inanalysables dans leur contexte : corriger la première erreur pourrait rendre le reste du document valide ou révéler des erreurs entièrement différentes. C'est le même comportement que la plupart des analyseurs JSON. Corrigez l'erreur signalée et revalidez ; s'il reste des erreurs, elles apparaîtront une à une.
Quelle est une erreur courante qui rend un JSON invalide ?
L'erreur la plus fréquente est une virgule finale après la dernière propriété d'un objet ou le dernier élément d'un tableau, par exemple {"a": 1,} ou [1, 2, 3,]. C'est valide en JavaScript et dans de nombreux formats de configuration, mais explicitement interdit en JSON. Parmi les autres erreurs courantes : utiliser des apostrophes pour les chaînes, ajouter un commentaire //, et oublier de mettre des guillemets autour des noms de propriétés. Le message d'erreur de JSON.parse indique la position exacte du caractère où l'analyse a échoué.

À propos de Validateur et formateur JSON

Le JSON est incontournable dans le développement moderne. Les API REST renvoient des réponses JSON. Les fichiers de configuration d'outils comme ESLint, TypeScript et npm utilisent JSON. Les bases de données NoSQL comme MongoDB stockent les documents en BSON (JSON binaire). Les charges utiles d'événements des fonctions serverless sont des objets JSON. Les développeurs doivent régulièrement inspecter, formater ou valider du JSON provenant de réponses d'API, d'exports de bases de données, de fichiers journaux, de charges de webhooks et de modèles de configuration. Une seule virgule mal placée ou un crochet non apparié rend tout le document invalide, et le JSON minifié brut d'une API de production est presque impossible à lire sans mise en forme.

Ce validateur et formateur JSON analyse votre saisie localement dans le navigateur à l'aide de la fonction native JSON.parse, le même analyseur que celui de tous les environnements d'exécution JavaScript. Il met en évidence la ligne et la colonne exactes de toute erreur de syntaxe pour que vous puissiez trouver et corriger les problèmes immédiatement. Une fois valide, l'outil met en forme le JSON avec une indentation configurable pour la lisibilité, ou le minifie en supprimant tous les espaces inutiles pour réduire la taille de la charge. Comme tout s'exécute dans votre navigateur, vos données JSON, qui peuvent contenir des clés d'API, des fiches utilisateur ou des données commerciales confidentielles, ne sont jamais envoyées à aucun serveur.

Les erreurs JSON courantes comprennent les virgules finales après le dernier élément d'un tableau ou d'un objet (valides en JavaScript mais interdites en JSON), les chaînes entre apostrophes (le JSON exige des guillemets doubles) et les commentaires (le JSON n'a pas de syntaxe de commentaire, contrairement à JSONC ou JSON5). Les nombres avec des zéros en tête (comme 007) sont aussi invalides. Si vous travaillez avec un format qui étend le JSON avec ces fonctionnalités, il vous faut plutôt un analyseur JSONC ou JSON5 ; le JSON.parse standard les rejette.

Comment le JSON a conquis le web

Le JSON a été créé et popularisé par Douglas Crockford, qui a enregistré le domaine json.org en 2001 et a commencé à défendre le JSON comme une alternative légère au XML pour l'échange de données en AJAX. L'intuition clé de Crockford était que la syntaxe des littéraux d'objet et de tableau de JavaScript constituait déjà un format de données valide ; il fallait seulement la documenter, la restreindre à des types sûrs et la promouvoir. Il a affirmé, de façon célèbre, avoir « découvert » le JSON plutôt que de l'avoir inventé, notant que la syntaxe était déjà latente dans JavaScript lui-même.

Malgré sa simplicité, le chemin du JSON vers la normalisation a été étonnamment houleux. Crockford l'a d'abord publié sous une licence comportant la phrase « Le logiciel sera utilisé pour le Bien, pas pour le Mal », ce qui a conduit certaines organisations open source à le classer comme non libre. Lorsque l'ECMA a formalisé le JSON sous le nom d'ECMA-404 en 2013 et que l'IETF a publié le RFC 8259 en 2017, ils ont utilisé une licence propre, mais Crockford a conservé la clause « le Bien, pas le Mal » dans la spécification originale de json.org, créant une note de bas de page persistante (et quelque peu humoristique) sur les licences dans l'histoire des standards web.

Aujourd'hui, le JSON est sans doute le format de données le plus analysé qui soit. Tous les grands langages de programmation livrent un analyseur JSON dans leur bibliothèque standard. Les API REST, les réponses GraphQL, les bases de données NoSQL, les fichiers de configuration, les systèmes d'agrégation de journaux et les bus d'événements serverless utilisent tous le JSON comme format natif. L'ironie, c'est que le JSON, conçu pour être plus simple que le XML, est devenu si omniprésent que des écosystèmes entiers de formats proches du JSON (JSON5, JSONC, NDJSON, JSON Schema, JSON Pointer, JSON Patch) ont grandi autour de lui pour pallier ses limites.

Publicité
Publicité
Publicité