Unterminated string in JSON at position N (line L column C)
L’analyseur a lu un guillemet double ouvrant et a atteint la fin de l’entrée sans trouver le fermant. La position signalée est celle où la chaîne a commencé, parce que c’est l’endroit utile : le guillemet manquant, lui, n’a pas de position.
Collez votre JSON et voyez exactement où il casse
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.
-
01 Un guillemet double non échappé à l’intérieur de la valeur
Le premier guillemet intérieur met fin à la chaîne, et tout ce qui suit désoriente l’analyseur. C’est le cas « mon JSON a l’air valide mais ne l’est pas ».
Casse
{ "note": "she said "hello"" }Fonctionne
{ "note": "she said \"hello\"" } -
02 Un antislash final
Un chemin Windows se terminant par un antislash échappe le guillemet fermant : la chaîne se poursuit donc dans le reste du document.
Casse
{ "dir": "C:\logs\" }Fonctionne
{ "dir": "C:\\logs\\" } -
03 Un guillemet réellement manquant
Facile à corriger une fois localisé, et c’est précisément à cela que servent la ligne et la colonne.
-
04 Le fichier est tronqué au milieu d’une chaîne
Une connexion coupée ou une limite de taille qui a sectionné le document au milieu d’une valeur.
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 | Unterminated string starting at: line 1 column 6 (char 5) |
|---|
Questions fréquentes
- Pourquoi la position désigne-t-elle le début de la chaîne ?
- Parce que c’est là que le problème est diagnosticable. L’analyseur ne sait qu’il y a un souci qu’au moment où il n’a plus d’entrée, ce qui peut arriver des milliers de caractères plus loin. Désigner le guillemet ouvrant vous dit quelle chaîne regarder.
Corrigez-le maintenant
Collez le payload dans l’outil ci-dessus, ou allez directement à celui conçu pour ce travail.
Trouver la chaîne ouverte