- #développement
- #JSON
- #outils
Valider un JSON : les erreurs de syntaxe les plus courantes
Par Vishnu Gopy · · 4 min de lecture
Vous collez un JSON dans votre code ou dans une API et le message tombe : « Unexpected token » ou « JSON invalide ». Le plus souvent, l’erreur tient à un seul caractère : une virgule de trop, des guillemets simples, une clé sans guillemets. Le format JSON est bien plus strict qu’un objet JavaScript, et les analyseurs ne pardonnent rien.
Voici les erreurs de syntaxe les plus courantes, comment les repérer vite, et la différence entre formater et minifier.
Les quatre erreurs qui reviennent le plus#
Chacune est valide en JavaScript, d’où la confusion, mais interdite en JSON.
- La virgule finale après le dernier élément d’un objet ou d’un tableau :
{"nom": "Vishnu", "ville": "Paris",}est refusé,[1, 2, 3,]aussi. - Les guillemets simples : le JSON n’accepte que les guillemets doubles, pour les clés comme pour les textes.
{'nom': 'Vishnu'}est refusé. - Les clés sans guillemets :
{nom: "Vishnu"}fonctionne dans un script, pas en JSON. Écrivez{"nom": "Vishnu"}. - Les commentaires : ni
//ni/* … */ne sont autorisés. Des variantes comme JSONC ou JSON5 les tolèrent, pas le JSON standard.
Les erreurs plus discrètes#
D’autres pièges se cachent dans des données copiées d’un programme :
- Les valeurs
undefined,NaNetInfinityn’existent pas en JSON. Utiliseznullou une chaîne. - Un retour à la ligne ou une tabulation dans un texte doit s’écrire
\nou\t. Un vrai saut de ligne à l’intérieur de guillemets est un caractère de contrôle interdit. - Un nombre ne peut pas commencer par un zéro :
007est invalide. Si c’est un identifiant, mettez-le entre guillemets. - Deux objets collés l’un à la suite de l’autre (
{…}{…}) ne forment pas un JSON valide : il faut les placer dans un tableau. - Les clés en double ne provoquent pas d’erreur, mais seule la dernière valeur est conservée. Le piège est silencieux.
Comprendre le message d’erreur#
L’analyseur signale l’endroit où il a compris que quelque chose clochait, pas forcément celui où vous avez fait la faute. Exemple avec une virgule oubliée :
{
"nom": "Vishnu"
"ville": "Paris"
}
La virgule manque à la fin de la ligne 2, mais l’erreur est signalée ligne 3, sur le début de "ville". De même, une virgule finale est signalée à l’accolade qui suit. Quand la position ne vous éclaire pas, regardez la ligne juste au-dessus.
Formater ou minifier : quelle différence#
Les deux opérations ne changent pas les données, seulement leur présentation.
- Formater ajoute des retours à la ligne et une indentation (2 espaces, 4 espaces ou une tabulation). C’est le format à lire, à relire dans un échange de code ou à comparer dans un diff.
- Minifier supprime tous les espaces inutiles. Le contenu devient plus compact, ce qui compte pour une réponse d’API ou un fichier envoyé au navigateur.
Voici le même contenu dans les deux présentations :
{
"nom": "Vishnu",
"actif": true
}
{"nom":"Vishnu","actif":true}
Le premier fait 38 caractères, le second 29. Sur un gros fichier, l’écart devient significatif.
Un point d’attention : reformater relit puis réécrit le JSON, et les entiers de plus de 15 chiffres peuvent être arrondis (12345678901234567890 devient 12345678901234567000). Gardez les identifiants très longs sous forme de texte.
Valider et formater avec l’outil#
Le formateur JSON valide pendant que vous collez :
- Collez votre JSON dans « JSON en entrée ». Le statut « JSON valide » ou « JSON invalide » s’affiche, avec la ligne et la colonne de l’erreur, un extrait de la ligne et le caractère fautif surligné. Selon le moteur du navigateur, la position n’est pas toujours disponible.
- Choisissez l’Indentation (2 espaces, 4 espaces, Tabulation) et, si besoin, cochez Trier les clés pour les classer par ordre alphabétique.
- Cliquez sur Formater ou Minifier, puis copiez le résultat ou téléchargez-le en
.json.
Le bouton Exemple charge un JSON de démonstration. Tout se fait dans votre navigateur : vos données ne sont pas envoyées. Si votre JSON vient d’un tableur, le convertisseur CSV ↔ JSON le génère (voir les pièges de la conversion CSV en JSON). Pour lire le contenu d’un jeton, le décodeur JWT l’affiche en JSON lisible.
À retenir#
Pas de virgule finale, pas de commentaire, des guillemets doubles partout, y compris pour les clés. Quand une erreur apparaît, regardez la position annoncée, puis la ligne précédente. Formatez pour lire, minifiez pour transporter.
Outils utilisés dans cet article
- Formateur JSON
Formater et minifier des données JSON.
- Convertisseur CSV ↔ JSON
Convertissez un CSV en JSON et inversement, compatible Excel.
- Décodeur JWT
Lisez l’en-tête, la charge utile et les dates d’un JWT.
À lire aussi
- Convertir un CSV en JSON : les pièges à éviter
Séparateur point-virgule, guillemets et retours à la ligne, accents dans Excel, types : les pièges de la conversion CSV vers JSON et comment les éviter.
- Base64 n’est pas du chiffrement : comment ça marche
Alphabet, remplissage avec « = » et hausse de 33 % du poids : comment fonctionne le Base64, à quoi il sert et pourquoi il ne protège aucune donnée.
- Lire un JWT : en-tête, charge utile et signature
Anatomie d’un JWT, revendications exp, iat et sub, et pourquoi décoder un jeton ne prouve rien : lisez vos tokens en local, sans les envoyer à un tiers.