📋
← Retour aux guides

Erreurs de syntaxe JSON courantes et comment les corriger à l'aide d'un validateur

· Tags: json, json-errors, json-validation, json-syntax, debugging, developer-tips

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 (01 est 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

  1. 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.
  2. Validez progressivement -- Pour les fichiers volumineux, validez une section à la fois pour isoler l'erreur.
  3. 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.
  4. 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.
  5. Utilisez un linter -- Des outils comme ESLint avec le plugin json dé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.