Unexpected non-whitespace character after JSON at position N (line L column C)
Un document JSON contient exactement une valeur de premier niveau. L’analyseur en a lu une complète, puis a trouvé autre chose après. La position signalée est celle où commence le contenu excédentaire, c’est-à-dire en général le début du deuxième enregistrement.
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 L’entrée est du NDJSON ou du JSON Lines
Une valeur JSON complète par ligne, sans virgules et sans tableau englobant. C’est le format utilisé par les chaînes de journalisation, les exports BigQuery, les opérations bulk d’Elasticsearch et les API de LLM en flux. Ce n’est pas du JSON cassé ; c’est un autre format, qui doit être lu ligne par ligne.
Casse
{"event":"login"} {"event":"logout"}Fonctionne
const records = text .split('\n') .filter((line) => line.trim()) .map((line) => JSON.parse(line)); -
02 Deux réponses ont été concaténées
Une nouvelle tentative qui a ajouté au lieu de remplacer, ou une lecture de flux qui a collé deux morceaux sans les séparer.
-
03 De la sortie de débogage a été ajoutée au corps
Un print oublié, un avertissement affiché, ou une sortie de profilage écrite après le JSON. Le document s’analyse parfaitement jusqu’au point où le texte supplémentaire commence, exactement là où pointe la position.
-
04 La valeur est doublement encodée
Une chaîne JSON contenant du JSON, déballée une fois de trop ou une fois de trop peu. Notre outil de déséchappement détecte combien de couches d’encodage porte 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 | Extra data: line 2 column 1 (char 8) |
|---|---|
| Firefox | JSON.parse: unexpected non-whitespace character after JSON data |
Questions fréquentes
- Comment savoir si mon fichier est du NDJSON ?
- Chaque ligne non vide s’analyse comme du JSON complet à elle seule, il n’y a pas de virgules entre les enregistrements, et pas de [ ] englobant. Collez-le dans notre validateur : il vous le dira et proposera d’encapsuler les enregistrements dans un tableau.
- Puis-je simplement l’entourer de crochets et ajouter des virgules ?
- Oui, et pour un petit fichier c’est la correction la plus rapide. Pour un gros fichier, le lire ligne par ligne consomme bien moins de mémoire, et c’est précisément la raison d’être du format.
Corrigez-le maintenant
Collez le payload dans l’outil ci-dessus, ou allez directement à celui conçu pour ce travail.
Convertir du NDJSON en JSON