Erreurs de syntaxe JSON courantes et comment les corriger Ă l'aide d'un validateur
Erreurs JSON courantes
Les rĂšgles de syntaxe strictes de JSON signifient qu'un seul caractĂšre mal placĂ© peut casser tout un document. Comprendre les erreurs JSON les plus courantes vous aidera Ă dĂ©boguer plus rapidement et Ă Ă©viter de rĂ©pĂ©ter les mĂȘmes erreurs. Voici les problĂšmes les plus frĂ©quents rencontrĂ©s par les dĂ©veloppeurs, avec des explications claires et des corrections pour chacun.
1. Virgules de fin
Erreur : Unexpected token Ă la fin d'un objet ou d'un tableau
Les virgules de fin sont autorisées dans les objets et tableaux JavaScript, mais sont strictement interdites en JSON.
JSON invalide :
{
"name": "Alice",
"age": 30,
}
Correction : Supprimez la virgule aprÚs le dernier élément.
{
"name": "Alice",
"age": 30
}
Tableaux avec virgules de fin :
// Invalid
[1, 2, 3,]
// Valid
[1, 2, 3]
2. Guillemets manquants ou incorrects autour des clés
Erreur : Unexpected identifier ou Expected double-quoted property name
JSON exige que toutes les clĂ©s d'objet soient entourĂ©es de guillemets doubles. Les guillemets simples et les clĂ©s sans guillemets ne sont pas valides, mĂȘme s'ils fonctionnent en JavaScript.
JSON invalide :
{
name: "Alice",
'occupation': "Engineer"
}
Correction : Enveloppez toujours les clés entre guillemets doubles.
{
"name": "Alice",
"occupation": "Engineer"
}
3. Utilisation de guillemets simples pour les valeurs de chaĂźne
Erreur : Unexpected identifier ou Unterminated string
Comme pour les clés, les valeurs de chaßne doivent utiliser des guillemets doubles en JSON. Les guillemets simples ne sont pas valides.
JSON invalide :
{ "greeting": 'Hello, world!' }
Correction : Remplacez les guillemets simples par des guillemets doubles.
{ "greeting": "Hello, world!" }
Astuce : Si votre chaßne contient des guillemets doubles, échappez-les avec une barre oblique inverse : "He said, \"Hello\"".
4. CaractÚres spéciaux non échappés
Erreur : Unexpected token ou Invalid character
Certains caractĂšres doivent ĂȘtre Ă©chappĂ©s dans les chaĂźnes JSON : les guillemets doubles ("), les barres obliques inverses (\) et les caractĂšres de contrĂŽle.
JSON invalide :
{
"path": "C:\Users\Documents\file.json",
"quote": "He said "hello""
}
Correction : Ăchappez correctement les barres obliques inverses et les guillemets doubles.
{
"path": "C:\\Users\\Documents\\file.json",
"quote": "He said \"hello\""
}
Liste complÚte des séquences d'échappement JSON
| Séquence | Représente |
|----------|-----------|
| \" | Guillemet double |
| \\ | Barre oblique inverse |
| \/ | Barre oblique |
| \b | Retour arriĂšre |
| \f | Saut de page |
| \n | Nouvelle ligne |
| \r | Retour chariot |
| \t | Tabulation |
| \uXXXX | CaractĂšre Unicode (par exemple, Ă© pour e) |
5. Formats numériques invalides
Erreur : Unexpected number ou Invalid number
JSON a des rÚgles spécifiques pour le formatage des nombres :
- Les zĂ©ros de tĂȘte ne sont pas autorisĂ©s (
01est invalide) - Un seul zĂ©ro de tĂȘte est autorisĂ© uniquement pour le nombre
0 - Les nombres ne peuvent pas avoir de point final (
10.est invalide) - Les formats hexadécimal, octal et binaire ne sont pas pris en charge
JSON invalide :
{
"invalid1": 01,
"invalid2": 10.,
"invalid3": 0xFF,
"invalid4": 1,000
}
Correction :
{
"valid1": 1,
"valid2": 10.0,
"valid3": 255,
"valid4": 1000
}
6. Valeurs invalides : undefined, NaN, Infinity
Erreur : Unexpected token pour undefined, NaN, Infinity
JavaScript possÚde des valeurs qui n'ont pas d'équivalent JSON. Celles-ci provoqueront des erreurs d'analyse :
JSON invalide :
{
"undefinedVal": undefined,
"notANumber": NaN,
"infinity": Infinity
}
Correction : Remplacez-les par des valeurs JSON valides ou utilisez une convention.
{
"undefinedVal": null,
"notANumber": null,
"infinity": 1.7976931348623157e+308
}
7. Virgules en trop ou virgules manquantes
Erreur : Expected comma ou Unexpected token
En JSON, les virgules doivent séparer chaque paire clé/valeur et chaque élément de tableau, mais ne doivent pas apparaßtre aprÚs le dernier élément.
Virgule manquante (invalide) :
{
"name": "Alice"
"age": 30
}
Correction : Ajoutez la virgule manquante.
{
"name": "Alice",
"age": 30
}
8. ProblÚmes de structure profondément imbriquée
Erreur : Maximum call stack size exceeded ou délai d'expiration de l'analyseur
Bien qu'il ne s'agisse pas d'une erreur de syntaxe, un JSON profondĂ©ment imbriquĂ© (10 niveaux ou plus) peut provoquer des problĂšmes de performance et rendre le dĂ©bogage extrĂȘmement difficile.
Structure problématique :
{
"level1": {
"level2": {
"level3": {
"level4": {
"level5": {
"level6": {
"value": "too deep"
}
}
}
}
}
}
}
Meilleure approche : Aplatissez la structure ou utilisez des références.
{
"users": {
"alice": { "role": "admin" }
},
"permissions": {
"admin": ["read", "write", "delete"]
}
}
9. Accolades d'ouverture ou de fermeture manquantes
Erreur : Expected ',' or '}' ou Unexpected end of JSON input
Les accolades et crochets non appariés sont une source courante d'erreurs JSON, en particulier dans les fichiers JSON volumineux ou écrits à la main.
JSON invalide :
{
"name": "Alice",
"items": [1, 2, 3
}
Correction : Assurez-vous que chaque { a un } correspondant, et chaque [ un ] correspondant.
{
"name": "Alice",
"items": [1, 2, 3]
}
Astuce de pro : Indentez correctement votre JSON pour faire correspondre visuellement les crochets d'ouverture et de fermeture. Un formateur JSON peut le faire automatiquement.
Comment déboguer efficacement les erreurs JSON
- Utilisez un validateur JSON -- Collez votre JSON dans un validateur JSON gratuit pour obtenir la ligne et la colonne exactes de la premiĂšre erreur.
- Validez progressivement -- Pour les fichiers volumineux, validez une section Ă la fois pour isoler l'erreur.
- Méfiez-vous des artefacts copier-coller -- Des caractÚres invisibles, des guillemets courbes et des espaces insécables s'infiltrent souvent depuis les traitements de texte ou les pages web.
- Vérifiez l'encodage des caractÚres -- Assurez-vous que votre fichier est enregistré en UTF-8. D'autres encodages peuvent produire des erreurs invisibles.
- Utilisez un linter -- Des outils comme ESLint avec le plugin
jsondétectent les erreurs JSON pendant le développement.
N'oubliez pas : les analyseurs JSON signalent généralement uniquement la premiÚre erreur de syntaxe. Corrigez celle-ci, revalidez, et répétez jusqu'à ce que le document passe. Notre outil Formateur et validateur JSON vous offre des messages d'erreur instantanés et détaillés pour accélérer ce processus.