Données

Corriger les erreurs de syntaxe JSON : les 7 erreurs les plus courantes et comment nettoyer un JSON

Réponses d'API, fichiers de configuration, journaux : le JSON est le format de données que les développeurs lisent le plus. Pourtant, une seule virgule ou un guillemet peut déclencher une erreur « Unexpected token ». Voici comment en trouver rapidement la cause.

Les règles de base

Le JSON (JavaScript Object Notation) est un format texte normalisé par la RFC 8259 et ECMA-404. Issu de JavaScript, il est aujourd'hui pris en charge par presque tous les langages. Il n'existe que six types de valeurs : chaîne, nombre, booléen (true/false), null, tableau et objet.

Les objets listent des paires "clé": valeur entre accolades, les tableaux listent des valeurs entre crochets, le tout séparé par des virgules. Les clés doivent être des chaînes entre guillemets doubles. Les règles étant simples, elles sont strictes : une notation admise dans du code JavaScript peut être une erreur en JSON.

{
  "id": 1024,
  "name": "AIBIZAP",
  "active": true,
  "tags": ["tools", "guides"],
  "owner": null
}

Sept erreurs qui provoquent des erreurs d'analyse

Regardez juste avant la position indiquée dans le message d'erreur : la cause est presque toujours l'une de celles-ci. Coller le document dans un formateur JSON le réindente et rend la ligne fautive facile à repérer.

  • Virgules finales : [1, 2, 3,] est invalide.
  • Guillemets simples : utilisez "name", jamais 'name'.
  • Clés sans guillemets : {name: "a"} est un objet JavaScript, pas du JSON.
  • Commentaires : le JSON standard n'a pas de commentaires // ou /* */.
  • Échappements manquants : dans les chaînes, écrivez \" pour les guillemets, \\ pour les barres obliques inverses et \n pour les retours à la ligne. Un chemin Windows brut comme C:\Users casse le document.
  • Valeurs spéciales : NaN, Infinity et undefined n'existent pas en JSON. Utilisez null pour une valeur absente.
  • BOM et caractères invisibles : un BOM UTF-8 en début de fichier ou une espace insécable récupérée lors d'un copier-coller peut faire échouer l'analyse dès le premier caractère.

Attention aux grands nombres et aux décimales

La norme JSON ne limite pas la taille des nombres, mais JavaScript stocke tous les nombres en virgule flottante 64 bits. Les entiers supérieurs à 2^53 (9 007 199 254 740 992) ne peuvent pas être représentés exactement : de longs identifiants envoyés comme nombres peuvent voir leurs derniers chiffres modifiés dans le navigateur.

Envoyez ces valeurs sous forme de chaînes dès le départ, par exemple "id": "1234567890123456789". Les montants posent un problème similaire — 0,1 + 0,2 vaut 0,30000000000000004 en virgule flottante — c'est pourquoi on les transmet souvent en centimes entiers ou en chaînes.

Le JSON n'a pas de type date

Les dates sont généralement envoyées soit sous forme de chaînes ISO 8601 ("2026-10-28T09:00:00Z"), soit sous forme d'horodatages Unix (1793178000). L'ISO 8601 avec un Z final (UTC) ou un décalage explicite comme +01:00 est recommandé, car il est lisible et sans ambiguïté.

Une valeur sans fuseau horaire, comme "2026-10-28 09:00", oblige le destinataire à deviner s'il s'agit de l'heure du serveur ou de l'utilisateur, ce qui entraîne des bugs comme un décalage de plusieurs heures.

Mise en forme et minification

Ajouter indentation et retours à la ligne rend le JSON plus lisible ; supprimer tous les espaces le rend plus léger à transférer. Le sens est identique : mettez-le en forme pendant le débogage et minifiez-le pour le transport ou le stockage.

Conservez mis en forme dans le contrôle de version les JSON édités par des humains, comme les fichiers de configuration, pour faciliter la relecture des modifications. L'ordre des clés n'a pas de sens, mais les trier rend les différences bien plus lisibles.

Transformer un JSON en code et en tables

À partir d'un exemple de réponse d'API, on a souvent besoin des classes C#, Java, Python ou TypeScript correspondantes. Recopier des dizaines de champs à la main invite aux fautes de frappe ; le générateur de classes JSON déduit les types de l'exemple et écrit le code du modèle pour vous.

Pour stocker les mêmes données en base, le générateur de DDL JSON rédige une instruction CREATE TABLE. Les types déduits reposent uniquement sur les valeurs de votre exemple : vérifiez les champs nullables, les longueurs de chaînes et les clés primaires avant de finaliser.

Essayez avec ces outils

Autres guides

Tous les guides