Comment formater et valider du JSON
Rendez lisible un JSON illisible, trouvez la ligne d'une erreur de syntaxe et corrigez les fautes les plus courantes.
4 min de lecture
Le JSON est partout : réponses d’API, fichiers de configuration, exports d’applications, lignes de logs. Les machines l’écrivent le plus souvent sur une seule longue ligne, sans espaces : c’est efficace, mais illisible. Et comme le JSON est strict, une virgule oubliée ou en trop suffit à rendre l’ensemble invalide. Le formatage règle le premier problème, la validation le second.
Formater, minifier, valider : de quoi parle-t-on ?
- Formater (ou indenter) ajoute des retours à la ligne et une indentation : chaque clé occupe sa propre ligne et l’imbrication se voit au premier coup d’œil.
- Minifier fait l’inverse : supprimer tous les espaces inutiles pour que les données soient aussi compactes que possible, par exemple avant de les coller dans une variable de configuration.
- Valider, c’est vérifier que le texte respecte les règles du JSON. Un formateur doit d’abord analyser les données : il valide donc au passage.
Formater du JSON avec QodeCat
Le formateur et validateur JSON fonctionne entièrement dans votre navigateur. Vous pouvez donc y coller des réponses d’API contenant des jetons ou des données clients sans qu’elles soient envoyées où que ce soit.
- Collez votre JSON dans la zone Entrée brute, ou cliquez sur Importer pour ouvrir un fichier .json. Les fichiers importés sont formatés immédiatement.
- Cliquez sur Formater pour indenter les données avec deux espaces, ou sur Minifier pour tout mettre sur une ligne. Le résultat remplace votre saisie et s’affiche à droite avec coloration syntaxique et la mention Valide.
- La barre d’outils indique la taille des données et le nombre de clés au premier niveau.
- Utilisez les boutons de copie et de téléchargement pour récupérer le résultat. Le fichier téléchargé s’appelle formatted_data.json.
Si le JSON est incorrect, un encadré JSON invalide apparaît avec le message d’erreur de votre navigateur, et votre saisie reste intacte pour que vous puissiez la corriger.
Lire le message d’erreur
Le message vient du navigateur et il est généralement en anglais. Un message comme Expected double-quoted property name in JSON at position 12 (line 3 column 1) indique l’endroit où l’analyseur s’est arrêté, pas toujours celui de l’erreur. Ici, le vrai problème est une virgule en trop à la fin de la ligne 2 : l’analyseur ne s’en aperçoit qu’en arrivant à l’accolade fermante. Regardez donc l’endroit signalé et le caractère qui le précède.
Les erreurs qui cassent le plus souvent un JSON
- Virgule finale : {"a": 1,} ou [1, 2,]. JavaScript l’accepte, pas le JSON.
- Guillemets simples : {'nom': 'Ada'}. Clés et chaînes doivent être entre guillemets doubles.
- Clés sans guillemets : {nom: "Ada"}. Chaque clé doit être une chaîne entre guillemets doubles.
- Virgules manquantes entre deux éléments, souvent après avoir assemblé des lignes copiées à plusieurs endroits.
- Commentaires (// ou /* */). Le JSON standard n’en accepte pas : supprimez-les.
- Valeurs propres à JavaScript : undefined, NaN, Infinity ou des fonctions.
- Guillemets typographiques (« » ou “ ”) collés depuis un traitement de texte ou une messagerie à la place des guillemets droits.
Trois choses à savoir avant de reformater
- Les clés en double sont fusionnées sans avertissement. Si un objet contient deux fois la même clé, seule la dernière valeur subsiste après formatage.
- Les très grands entiers perdent en précision. Au-delà de 9 007 199 254 740 991, comme pour certains identifiants 64 bits, les nombres sont arrondis : 12345678901234567890 devient 12345678901234567000. Stockez ces identifiants sous forme de chaînes.
- Les clés qui ressemblent à des entiers passent en tête. Dans {"b": 1, "2": 0}, la clé "2" arrive en premier après formatage. Les autres clés gardent leur ordre.
Pour aller plus loin : convertissez un tableur avec CSV en JSON, passez d’un format de configuration à l’autre avec YAML ↔ JSON, ou générez des types à partir d’un exemple avec JSON vers TypeScript.
Questions fréquentes
Le formatage modifie-t-il mes données ?
En principe, seuls les espaces changent. Les clés et les valeurs restent identiques, à trois exceptions près, décrites ci-dessus : clés en double, entiers trop grands pour JavaScript et clés numériques remontées en tête.
Peut-on formater du JSON qui contient des commentaires ?
Pas directement. Les commentaires ne sont pas du JSON valide, le validateur signalera donc une erreur. Supprimez-les d’abord, puis formatez.