...
Contact Contact

Formater, valider et déboguer du JSON : les 6 causes de « Unexpected token »

How to format, validate and debug JSON and fix Unexpected token errors How to format, validate and debug JSON and fix Unexpected token errors

« Unexpected token » est le message d’erreur le plus inutile du développement web : il dit seulement que quelque chose, quelque part, ne va pas. En pratique, presque toutes les erreurs JSON ont six causes, et qui les connaît trouve l’endroit en quelques secondes. Ce guide les montre avec des exemples, explique ce que le JSON n’autorise pas contrairement à JavaScript, et comment retrouver ce qu’il vous faut dans une réponse d’API de 5 000 lignes. Connaître les erreurs JSON les plus courantes permet de trouver la faute en quelques secondes.

Ce qu’est le JSON — et ce qu’il n’est pas

Le JSON est un format de données avec très peu de règles : objets entre accolades, tableaux entre crochets, clés toujours entre guillemets doubles, valeurs qui sont des chaînes, des nombres, true/false/null, des objets ou des tableaux. Tout ce que JavaScript autorise en plus — commentaires, guillemets simples, fonctions, undefined, virgules finales — est interdit en JSON. C’est de là que viennent les erreurs.

Les six causes des erreurs JSON

  1. Virgule finale. {"a": 1, "b": 2,} : la virgule après le dernier élément est invalide.
  2. Guillemets simples. {'nom': 'Marie'} : le JSON n’accepte que les doubles.
  3. Clés sans guillemets. {nom: "Marie"} : valide en JavaScript, pas en JSON.
  4. Commentaires. // note ou /* ... */ n’existent pas en JSON. Les fichiers de configuration qui acceptent des commentaires sont du JSON5 ou du JSONC, pas du JSON.
  5. Caractères non échappés dans une chaîne. Un saut de ligne ou un guillemet dans une chaîne s’écrit n ou ".
  6. Données tronquées. La réponse a été coupée à la copie ; l’analyseur dit « Unexpected end of input ». Vérifiez que la dernière accolade est là.

Collez le texte dans le formateur JSON : il marque la ligne et la colonne de l’erreur et nomme la cause en clair.

Advertisement

Des nombres qui n’en sont pas

Les zéros initiaux (007), l’hexadécimal (0xFF), NaN et Infinity sont invalides. Les très grands entiers (au-delà de 2^53) perdent en précision en JavaScript : transmettez les identifiants sous forme de chaînes.

Rendre lisibles les gros fichiers

Personne ne lit une réponse de 5 000 lignes de haut en bas. La vue en arbre du formateur plie et déplie les objets, la recherche trouve les clés dans toute la structure et le chemin de chaque valeur (data.items[3].price) se copie, exactement ce dont vous avez besoin dans le code.

Formater ou minifier

Formaté (indenté), le JSON est pour les humains ; minifié (sans espaces), il est pour le transfert. Ce sont les mêmes données ; la minification économise 20 à 40 % sur les grosses réponses. Dans les fichiers de configuration et les dépôts Git, enregistrez toujours en formaté : les diffs restent lisibles.

Questions fréquentes

Pourquoi la console du navigateur accepte-t-elle mon JSON et pas le serveur ?

Parce que dans la console vous saisissez un littéral d’objet JavaScript, pas du JSON. Le serveur analyse strictement.

Comment valider du JSON dans le terminal ?

cat fichier.json | python3 -m json.tool le formate et signale les erreurs avec leur position.

L’ordre des clés a-t-il de l’importance ?

Selon la spécification, non. Si votre code en dépend, il est fragile.

Essayez maintenant : Formateur et validateur JSON

Gratuit, fonctionne dans votre navigateur, rien n’est envoyé, sans inscription.

Ouvrir l’outil →
Add a comment Add a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Submit Comment

Advertisement
Seraphinite AcceleratorOptimized by Seraphinite Accelerator
Turns on site high speed to be attractive for people and search engines.