Les règles du JSON
Le JSON (JavaScript Object Notation) est un format texte d'échange de données, décrit par la RFC 8259 de l'IETF et par la norme ECMA-404. Sa grammaire tient en quelques lignes, et c'est sa rigueur qui fait sa force : un fichier JSON se lit de la même façon dans tous les langages.
{"clé": valeur, "autre": valeur}[valeur, valeur, valeur]"texte", 12.5, true, false, null- Les clés sont toujours des chaînes, entre guillemets doubles.
- Une chaîne ne contient ni saut de ligne ni tabulation bruts : on les écrit
\net\t. - Les nombres s'écrivent avec un point décimal, sans zéro en tête (
7et non07), ni+devant. - Seuls
true,falseetnullsont admis comme mots, en minuscules. - Les espaces entre les éléments sont libres : c'est ce qui permet d'indenter ou de minifier sans changer le sens.
Les erreurs les plus courantes
| Écrit | Problème | Correct |
|---|---|---|
[1, 2,] | Virgule finale | [1, 2] |
{'a': 1} | Guillemets simples | {"a": 1} |
{a: 1} | Clé sans guillemets | {"a": 1} |
True | Majuscule (Python) | true |
0,5 | Virgule décimale | 0.5 |
L'outil s'arrête à la première erreur rencontrée : une fois corrigée, la suivante apparaît. La colonne compte les caractères depuis le début de la ligne, en commençant à 1.
Trois exemples
{"nom":"Lycos","tags":["web","outils"]} devient un objet de 2 clés sur 7 lignes, chaque niveau décalé de 2 espaces. Il passe de 39 à 61 octets : l'indentation ne coûte que des espaces et des retours à la ligne.
{"ville": "Paris", "cp": "75001",} est refusé : « Virgule en trop avant « } » »,ligne 1, colonne 33, la position de la virgule à retirer.
{'actif': True} est refusé dès la colonne 2 : les guillemets simples ne sont pas du JSON. Une fois remplacés par des guillemets doubles, c'est True qui est signalé, à écrire true.
Tri, minification et arbre
Trier les clés range les clés de chaque objet par ordre alphabétique, à tous les niveaux, sans toucher à l'ordre des tableaux, qui a un sens. C'est pratique pour comparer deux fichiers : deux JSON identiques mais écrits dans un ordre différent deviennent superposables. Le tri suit l'ordre des codes des caractères : les majuscules passent avant les minuscules, et les lettres accentuées après.
Minifier retire tous les espaces entre les éléments, pour un fichier plus léger à transmettre.L'arbre repliable affiche la structure niveau par niveau : chaque objet donne son nombre de clés, chaque tableau son nombre d'éléments, et un clic ouvre le niveau suivant.
{"a": 1, "a": 2} est accepté par la grammaire, mais la plupart des programmes ne gardent que la dernière valeur. L'outil conserve les deux et vous signale la clé en double.
Questions fréquentes
Comment savoir si mon JSON est valide ?
Collez-le dans le champ : l'outil l'analyse à chaque frappe. S'il est valide, il s'affiche remis en forme ; sinon, l'outil indique la première erreur rencontrée, avec sa ligne, sa colonne et un extrait de la ligne pointant le caractère fautif.
Pourquoi une virgule à la fin d'une liste rend-elle le JSON invalide ?
Le JSON n'accepte pas de virgule après le dernier élément d'un objet ou d'un tableau, contrairement à JavaScript. {"a": 1,} est refusé : retirez la virgule qui précède l'accolade.
Le JSON accepte-t-il les commentaires ou les guillemets simples ?
Non. Les chaînes et les clés s'écrivent entre guillemets doubles, et aucun commentaire n'est permis, ni // ni /* */. Certains fichiers de configuration les tolèrent, mais ce n'est alors plus du JSON au sens strict.
Minifier un JSON change-t-il son contenu ?
Non. La minification retire seulement les espaces, tabulations et retours à la ligne entre les éléments. Les espaces à l'intérieur des chaînes sont conservés et les valeurs restent identiques.
Mon JSON est-il envoyé quelque part ?
Non. L'analyse se fait dans votre navigateur et le texte n'est ni envoyé ni gardé dans l'adresse de la page : seuls les réglages (indentation, tri, arbre) y figurent.
Les grands nombres sont-ils arrondis ?
Pas par cet outil : chaque nombre est réécrit exactement comme vous l'avez saisi. En revanche, un programme JavaScript qui lit ce JSON arrondira les entiers au-delà de 9 007 199 254 740 991.
Une erreur ? Signalez-la, nous la corrigeons.