Aller au contenu principal
CuteJSON
↑↓ Naviguer Enter Selectionner Esc Fermer

Comment valider JSON et vraiment comprendre l'erreur

Publie 2 min de lecture Par Akash Kinkar Pandey

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.

Retour aux articles