Comment corriger un JSON invalide : les 8 erreurs les plus courantes
« Unexpected token », « Unexpected end of JSON input », « Expecting property name » : les erreurs JSON sont obscures, mais presque toutes viennent des mêmes quelques fautes. Voici comment trouver et corriger chacune.
Réponse rapide
Collez le JSON dans un validateur JSON pour voir la ligne et la colonne exactes de l'erreur. Les coupables habituels sont les virgules finales, les guillemets simples, les clés sans guillemets, les commentaires et les accolades ou crochets manquants. Corrigez la première erreur, validez à nouveau, et recommencez.
Les règles du JSON en 30 secondes
Le JSON (JavaScript Object Notation) ressemble à du JavaScript, mais il est beaucoup plus strict :
- Les clés doivent être des chaînes entre guillemets doubles.
- Les chaînes utilisent uniquement des guillemets doubles.
- Une valeur peut être une chaîne, un nombre,
true,false,null, un objet ou un tableau. - Les éléments sont séparés par des virgules, sans virgule après le dernier.
- Pas de commentaires, pas de
undefined, pas de fonctions.
Trouver l'erreur rapidement
- Ouvrez le formateur et validateur JSON gratuit.
- Collez votre JSON ou déposez un fichier .json.
- S'il est invalide, l'erreur s'affiche avec sa ligne et sa colonne. Allez-y directement.
- Essayez le bouton Réparer, qui corrige automatiquement les virgules finales, les guillemets simples, les clés sans guillemets et les commentaires.
- Formatez le résultat avec 2 espaces, 4 espaces ou des tabulations, et explorez-le dans la vue en arborescence.
Essai gratuit : Formateur et validateur JSON
Formatez, minifiez, validez et explorez du JSON sous forme d'arbre. Fonctionne dans votre navigateur, sans inscription.
1. Les virgules finales
// ❌ Invalide
{ "name": "Ana", "age": 31, }
// ✅ Valide
{ "name": "Ana", "age": 31 }
Le JavaScript accepte une virgule après le dernier élément, pas le JSON. C'est de loin l'erreur la plus fréquente, surtout après avoir supprimé la dernière ligne d'un objet.
2. Les guillemets simples
// ❌ Invalide
{ 'name': 'Ana' }
// ✅ Valide
{ "name": "Ana" }
3. Les clés sans guillemets
// ❌ Invalide
{ name: "Ana" }
// ✅ Valide
{ "name": "Ana" }
4. Les commentaires
// ❌ Invalide
{
// réglages utilisateur
"theme": "dark"
}
Le JSON standard n'a pas de commentaires. Certains outils acceptent le « JSONC » (JSON avec commentaires), comme les fichiers de réglages de VS Code, mais la plupart des analyseurs non. Supprimez les commentaires ou placez vos notes dans un champ comme "_comment".
5. Les virgules manquantes entre les éléments
// ❌ Invalide
{ "a": 1 "b": 2 }
// ✅ Valide
{ "a": 1, "b": 2 }
C'est généralement dû à l'ajout d'une nouvelle ligne en oubliant la virgule sur la ligne précédente. L'erreur est signalée au début de l'élément suivant.
6. Accolades ou crochets manquants ou mal appariés
// ❌ Invalide : le tableau n'est jamais fermé
{ "tags": ["a", "b" }
Une erreur comme « Unexpected end of JSON input » signifie souvent qu'il manque un } ou un ] fermant, ou que le texte a été tronqué. Formater le JSON avec une indentation rend la structure facile à vérifier.
7. Les valeurs invalides
// ❌ Invalide
{ "price": NaN, "date": undefined, "big": 1e999, "hex": 0xFF, "zip": 01234 }
// ✅ Valide
{ "price": null, "date": null, "hex": 255, "zip": "01234" }
Les nombres JSON ne peuvent pas avoir de zéros en tête, de notation hexadécimale, ni valoir NaN ou Infinity. Stockez les codes postaux et les numéros de téléphone sous forme de chaînes pour conserver leurs zéros initiaux.
8. Les caractères non échappés dans les chaînes
// ❌ Invalide
{ "path": "C:\Users\ana", "quote": "Elle a dit "salut"" }
// ✅ Valide
{ "path": "C:\\Users\\ana", "quote": "Elle a dit \"salut\"" }
Les barres obliques inversées et les guillemets doubles à l'intérieur des chaînes doivent être échappés par une barre oblique inversée. Les vrais retours à la ligne dans une chaîne doivent s'écrire \n.
Les erreurs qui ne sont pas vraiment des problèmes de JSON
- « Unexpected token < in JSON at position 0 » : vous avez reçu du HTML au lieu de JSON. L'API a probablement renvoyé une page d'erreur ou une redirection vers une page de connexion. Vérifiez le code de statut et l'URL.
- « Unexpected end of JSON input » avec une réponse vide : le serveur n'a rien envoyé. Vérifiez la requête, pas l'analyseur.
- Les caractères invisibles : une marque d'ordre des octets (BOM) ou des guillemets typographiques collés depuis un traitement de texte. Retapez les guillemets, ou enregistrez le fichier en UTF-8 sans BOM.
Éviter les erreurs JSON dès le départ
- Ne construisez jamais du JSON à la main dans le code. Utilisez
JSON.stringify()en JavaScript oujson.dumps()en Python. - Utilisez un éditeur qui valide le JSON, comme VS Code, qui souligne les erreurs pendant la frappe.
- Validez les données des API avec un JSON Schema dans vos tests.
- Triez les clés avant de comparer deux fichiers JSON, pour que les différences ne montrent que les vrais changements.
Questions fréquentes
Pourquoi mon JSON fonctionne-t-il en JavaScript mais pas avec JSON.parse ?
Les objets littéraux JavaScript acceptent les guillemets simples, les clés sans guillemets, les virgules finales et les commentaires. Pas le JSON : un code qui semble correct dans un fichier .js échoue donc en tant que JSON.
Le JSON peut-il contenir des commentaires ?
Pas dans la norme. Des formats comme JSONC et JSON5 les acceptent, mais uniquement avec des analyseurs qui prennent ces formats en charge.
Est-il sûr de coller des réponses d'API dans un formateur en ligne ?
Seulement s'il n'envoie pas vos données. Notre formateur analyse tout dans votre navigateur : les jetons et les données personnelles restent sur votre appareil.
En résumé
Les erreurs JSON viennent presque toujours d'une courte liste de fautes. Validez pour trouver la position exacte, corrigez la première erreur, validez à nouveau, et générez le JSON par du code plutôt qu'à la main dès que possible.
Une information obsolète ou peu claire ? Écrivez à contact@ultratoolsai.com et nous la corrigerons.


