Aller au contenu
jsonbeautifiers
Français
V8 Vérifié en exécutant l’analyseur sur Node v24.15.0, V8 13.6.233.17.

Bad escaped character in JSON at position N (line L column C)

JSON admet exactement neuf séquences d’échappement : \" \\ \/ \b \f \n \r \t et \uXXXX. Tout le reste après un antislash est une erreur. Un antislash seul dans un chemin Windows en est presque toujours la cause, car \U, \P et \D ne sont pas des échappements.

Collez votre JSON et voyez exactement où il casse

Entrée

Rien de ce que vous collez ne quitte votre navigateur. La liste d’autorisation connect-src en fait une garantie du navigateur plutôt qu’une promesse. Vérifiez-le vous-même

Ce qui le provoque réellement

Classés selon la fréquence à laquelle chacun se révèle être la réponse.

  1. 01 Un chemin de fichier Windows avec des antislashs simples

    C’est la cause dominante. Chaque antislash dans une chaîne JSON doit être doublé. Les barres obliques fonctionnent aussi sous Windows dans la plupart des contextes et évitent complètement le problème.

    Casse

    { "path": "C:\Users\priya\config.json" }

    Fonctionne

    { "path": "C:\\Users\\priya\\config.json" }
  2. 02 Un échappement hexadécimal emprunté à un autre langage

    JSON n’a pas d’échappement \x. C, Python et JavaScript acceptent tous \x41 pour la lettre A ; JSON exige \u0041.

    Casse

    { "c": "\x41" }

    Fonctionne

    { "c": "\u0041" }
  3. 03 Une expression régulière collée dans une chaîne

    Des motifs comme \d, \s et \w ne sont pas des échappements JSON. Chaque antislash du motif doit être doublé avant d’entrer dans une chaîne JSON.

    Casse

    { "pattern": "^\d{3}-\d{4}$" }

    Fonctionne

    { "pattern": "^\\d{3}-\\d{4}$" }
  4. 04 Un échappement d’apostrophe

    \' est valide en JavaScript et en JSON5 mais pas en JSON. Dans une chaîne entre guillemets doubles, une apostrophe n’a besoin d’aucun échappement.

La même erreur dans d’autres environnements

Le problème de fond est identique ; seule la formulation change. Si un collègue signale l’un de ces messages, il regarde exactement la même chose que vous.

Python Invalid \escape: line 1 column 9 (char 8)

Questions fréquentes

Pourquoi ma chaîne Python a-t-elle l’air correcte et échoue quand même ?
Parce que l’antislash est consommé deux fois : une fois par le littéral de chaîne Python et une fois par JSON. Utilisez une chaîne brute pour le littéral, ou construisez l’objet et appelez json.dumps au lieu d’écrire du JSON à la main.
\/ est-il vraiment autorisé ?
Oui. Échapper une barre oblique est facultatif en JSON et les deux formes désignent le même caractère. Cela existe pour que du JSON puisse être intégré sans risque dans une balise script en HTML, où la séquence </ mettrait fin à l’élément.

Corrigez-le maintenant

Collez le payload dans l’outil ci-dessus, ou allez directement à celui conçu pour ce travail.

Échapper une chaîne correctement