Unexpected non-whitespace character after JSON at position N (line L column C)
Um documento JSON contém exatamente um valor de nível superior. O parser leu um inteiro e depois encontrou outra coisa em seguida. A posição que ele reporta é onde o conteúdo extra começa, o que costuma ser o começo do segundo registro.
Cole o seu JSON e veja exatamente onde ele quebra
Nada do que você cola sai do seu navegador. A lista de permissões connect-src transforma isso em uma garantia do navegador, e não em uma promessa. Confira você mesmo
O que realmente causa isso
Ordenados por quantas vezes cada um acaba sendo a resposta.
-
01 A entrada é NDJSON ou JSON Lines
Um valor JSON completo por linha, sem vírgulas e sem array envolvendo. É o formato usado por pipelines de log, exportações do BigQuery, operações bulk do Elasticsearch e APIs de LLM em streaming. Não é JSON quebrado; é outro formato, que precisa ser lido linha a linha.
Quebra
{"event":"login"} {"event":"logout"}Funciona
const records = text .split('\n') .filter((line) => line.trim()) .map((line) => JSON.parse(line)); -
02 Duas respostas foram concatenadas
Uma nova tentativa que acrescentou em vez de substituir, ou uma leitura de stream que juntou dois pedaços sem separá-los.
-
03 Saída de depuração foi acrescentada ao corpo
Um print esquecido, um warning ecoado, ou saída de profiling escrita depois do JSON. O documento faz o parsing perfeitamente até o ponto em que o texto extra começa, que é exatamente para onde a posição aponta.
-
04 O valor está com codificação dupla
Uma string JSON contendo JSON, desembrulhada uma vez a menos ou uma vez a mais. A nossa ferramenta de desescape detecta quantas camadas de codificação um valor tem.
O mesmo erro em outros runtimes
O problema de fundo é idêntico; só muda a redação. Se um colega reportar uma dessas mensagens, ele está olhando exatamente para a mesma coisa que você.
| Python | Extra data: line 2 column 1 (char 8) |
|---|---|
| Firefox | JSON.parse: unexpected non-whitespace character after JSON data |
Perguntas frequentes
- Como sei se o meu arquivo é NDJSON?
- Cada linha não vazia faz o parsing como JSON completo sozinha, não há vírgulas entre registros, e não há [ ] envolvendo. Cole no nosso validador: ele diz isso e ainda oferece envolver os registros em um array.
- Não posso simplesmente envolver em colchetes e pôr vírgulas?
- Pode, e para um arquivo pequeno essa é a correção mais rápida. Para um grande, ler linha a linha usa muito menos memória, que é justamente a razão de o formato existir.
Conserte agora
Cole o payload na ferramenta acima, ou vá direto para a que foi feita para este trabalho.
Converter NDJSON para JSON