Un validateur qui dit uniquement “token inattendu” vous a indiqué où il a abandonné, pas ce que vous avez fait de travers. Ce sont souvent des endroits différents. Une virgule manquante est généralement signalée au token suivant, pas à la virgule manquante elle-même, et un crochet non fermé est signalé à la fin du fichier quelle que soit la ligne sur laquelle il a été ouvert.
Ce que le validateur JSON signale
Collez un document et appuyez sur Valider, ou arrêtez simplement de taper
puisque la validation se lance automatiquement. Le résultat nomme la
construction réelle qui est erronée : guillemets simples, une clé sans
guillemets, une virgule de fin, un mot-clé avec une casse incorrecte comme
True ou NULL, NaN ou Infinity, un zéro initial, ou une séquence
d’échappement erronée, chacune avec la ligne et la colonne où elle commence.
Clés dupliquées, dont la plupart des validateurs ne disent rien
Une clé dupliquée est du JSON légal. La spécification le permet, et chaque analyseur que vous utilisez probablement garde la dernière valeur et rejette silencieusement la précédente. Cela signifie que les données peuvent disparaître d’un document qui est parfaitement valide, sans aucune erreur n’importe où. Collez
{"region":"eu-west-1","retries":3,"region":"us-east-1"}
et le validateur le signale comme JSON valide, une ligne, et avertit séparément :
Clé dupliquée “region”. La dernière valeur gagne, la précédente en ligne 1 est rejetée.
C’est un avertissement, pas une erreur, parce que la spécification le permet vraiment. Mais c’est le genre de bug qui est invisible jusqu’à ce que quelque chose en aval lise la mauvaise valeur, et la plupart des outils ne le mentionnent jamais.
Ce qui compte comme erreur par rapport à un avertissement
Une erreur signifie que le document n’est pas du JSON valide et que rien en aval ne devrait essayer de l’analyser : un problème de syntaxe, un caractère illégal, une erreur structurelle. Un avertissement signifie que le document est analysé, mais qu’il y a quelque chose qui mérite un second coup d’œil, comme une clé dupliquée. La ligne d’état en haut vous dit laquelle vous regardez, et les erreurs marquent la ligne échouée dans la marge de l’éditeur pour que vous puissiez la trouver sans défiler.
Pourquoi c’est important avant de valider ou de déployer
Les fichiers de configuration, les données de test d’API et les données générées passent tous par un analyseur JSON éventuellement, généralement en production, où le message d’erreur est ce que l’analyseur par défaut du runtime vous donne. Détecter une virgule de fin ou une clé dupliquée ici, avec un message qui nomme l’erreur, est plus rapide que de déboguer le même problème après un déploiement.