Skip to main content

Formatez, validez et minifiez du JSON.

Guide JSON

JSON (JavaScript Object Notation) is a lightweight data exchange format that has become a standard in modern programming.Il est facile à lire et à écrire pour les humains, et facile à analyser et à générer pour les machines. JSON est indépendant du langage de programmation, ce qui le rend idéal pour la communication entre différents systèmes et applications web.

La structure JSON repose sur des paires clé-valeur et des listes ordonnées de valeurs.Les objets JSON sont entourés d'accolades {} et contiennent zéro ou plusieurs paires clé:valeur, séparées par des virgules.Les tableaux JSON sont entourés de crochets [] et contiennent une liste ordonnée de valeurs.Les valeurs peuvent être des chaînes (entre guillemets), des nombres, des booléens (true/false), null, des objets ou des tableaux.

Formater le JSON améliore la lisibilité du code.L'ajout d'indentation et de sauts de ligne rend la structure des données plus lisible, ce qui est précieux pour le débogage et l'analyse. La minification (suppression des espaces) réduit la taille du fichier, ce qui compte pour les performances des applications web, surtout lors de la transmission sur le réseau.

La validation du JSON est une étape essentielle avant de traiter les données.Un JSON invalide peut provoquer des erreurs applicatives et des comportements inattendus. Les problèmes courants sont les virgules manquantes, les guillemets incorrects, les virgules en fin de liste ou l'usage d'apostrophes au lieu de guillemets. Les outils de validation aident à repérer et corriger rapidement les erreurs.

Tous les calculs sont effectués localement dans votre navigateur. Aucune donnée n'est envoyée au serveur.

Les résultats sont fournis à titre informatif. Vérifiez-les auprès d'autres sources.

Un JSON à clé répétée se parse proprement et jette deux valeurs

Parsez {"id": 1, "id": 2, "id": 3} et vous obtenez {"id": 3}. Aucune erreur, aucun avertissement : la dernière occurrence l'emporte et les précédentes disparaissent. La spécification l'autorise, tous les analyseurs courants le font, et cela signifie qu'une clé dupliquée dans un fichier de configuration n'est pas une erreur de syntaxe dont on vous informera.

Comment ça marche

  • Formate et valide du JSON en signalant la position d'une erreur de syntaxe et non seulement son existence.
  • Minifie pour le transport et indente pour la lecture, deux tâches distinctes sur les mêmes données.
  • Fait apparaître les problèmes structurels qu'un analyseur accepte en silence.
clés dupliquées → la dernière occurrence l'emporte, en silence
entiers supérieurs à 2⁵³ − 1 → arrondis au parsing, en silence

NaN et Infinity → null
undefined dans un objet → clé supprimée
undefined dans un tableau → null
BigInt → lève une TypeError

Exemple chiffré

Trois choses qu'un analyseur fait à du JSON valide sans se plaindre.

  1. {"id": 1, "id": 2, "id": 3} → {"id": 3}
  2. {"id": 9007199254740993} → {"id": 9007199254740992}
  3. {"id": 1770000000123456789} → {"id": 1770000000123456800}
  4. {a: undefined, b: 1} → {"b": 1} — la clé disparaît
  5. [undefined, 1] → [null, 1] — mais ici elle devient null

La même valeur undefined est supprimée dans un objet et conservée en null dans un tableau. Rien de tout cela ne produit d'erreur, d'où une apparition bien plus tardive sous forme de champ manquant ou d'identifiant qui ne correspond plus à rien.

Lire le résultat

  • Les grands identifiants sont le cas le plus dommageable. Un identifiant à 19 chiffres ressort de JSON.parse en nombre légèrement différent : les recherches échouent donc face à une base ayant stocké l'original. Transmettez ces identifiants sous forme de chaînes — c'est exactement pourquoi les grandes API renvoient id et id_str côte à côte.
  • JSON n'a ni commentaires, ni virgule finale, ni type date. Les dates ne survivent que comme chaînes ISO par convention : un aller-retour en JSON transforme un Date en texte et ne le retransformera pas sans traitement explicite.
  • L'indentation coûte plus qu'on ne croit : l'échantillon ici grossit de 84,7% une fois formaté avec deux espaces. Formatez pour les humains qui lisent et minifiez tout ce qui traverse un réseau, car l'écart approche le double.
  • L'ordre des clés est préservé par toutes les grandes implémentations mais n'est pas garanti par la spécification. S'y fier fonctionne jusqu'au jour où non, et comparer deux documents JSON par égalité de chaînes signalera des différences purement d'ordre.

Questions fréquentes

Pourquoi mon identifiant a-t-il changé après un aller-retour ?
Il dépassait 2⁵³ − 1 et a été arrondi à la valeur représentable la plus proche. 1770000000123456789 revient en 1770000000123456800. La solution est de véhiculer les grands identifiants en chaînes, car aucun soin dans l'analyseur ne récupère des chiffres déjà perdus.
Une clé dupliquée rend-elle le JSON invalide ?
Non. La spécification l'autorise et les analyseurs tranchent en gardant la dernière occurrence. Cela en fait un vrai danger dans une configuration éditée à la main, où une clé répétée écrase silencieusement un réglage antérieur sans que rien ne signale le conflit.