Mettre en forme, minifier et valider
La mise en forme indente le JSON pour qu'une personne en lise la structure ; la minification retire chaque espace facultatif pour réduire la taille transférée. Seule la présentation change : les données sont identiques dans les deux cas, donc passer de l'une à l'autre ne modifie jamais une valeur.
La validation tente une analyse et indique si elle a réussi. En cas d'échec elle signale aussi où l'analyseur s'est arrêté, ce qui n'est pas là où l'erreur a commencé mais là où il est devenu impossible d'avancer. La cause réelle se situe généralement un peu plus tôt dans le texte.
La largeur d'indentation relève du goût et de la convention d'équipe. Deux espaces économisent la place horizontale dans des données très imbriquées, quatre rendent la structure plus facile à parcourir des yeux, et zéro ne laisse que les retours à la ligne, ce qui convient pour lire une entrée à la fois.
Pourquoi un JSON refuse généralement de s'analyser
Une virgule qui traîne après la dernière entrée est la cause la plus fréquente. Les littéraux d'objet JavaScript l'admettent et la norme JSON non, et il est facile de l'oublier après avoir supprimé une entrée. Regardez d'abord juste avant chaque crochet fermant.
Les apostrophes simples ne sont pas du JSON valide. Les clés comme les chaînes ont besoin de guillemets doubles, et l'habitude JavaScript de laisser les clés sans guillemets ne se transpose pas. Cela mord surtout quand un extrait est copié directement depuis du code source.
Les commentaires ne font pas non plus partie de la norme. Les commentaires à double barre courants dans les fichiers de configuration ne sont acceptés que par des extensions comme JSON5 ou JSONC, si bien qu'un analyseur standard exige leur suppression. NaN, Infinity et undefined n'ont pas non plus de représentation.