Validador e conversor de JSON Lines / NDJSON

Cole um valor JSON por linha para conferir os registros e seus campos. A conversão para array JSON ou JSON Lines normalizado inclui apenas registros válidos; linhas vazias são ignoradas e erros aparecem em um relatório separado.

Funciona localmente no seu navegador
Esta ferramenta processa todos os dados localmente no seu navegador.
Entrada JSON LinesUse um valor JSON completo por linha não vazia. Nenhum arquivo, evento ou registro é enviado.

Como conferir JSON Lines

Cole JSON delimitado por linhas e clique em Validar e converter. Cada linha não vazia é analisada separadamente, então uma linha quebrada não esconde as outras: o relatório informa a linha, a coluna onde a análise parou e deixa essa linha fora da saída convertida.

Linhas vazias, BOM no início, finais de linha CRLF e espaços em volta da linha são aceitos. A conversão acontece nesta aba e a página não envia nenhuma requisição enquanto trabalha.

  1. Cole os registros na área de texto ou clique em Carregar exemplo para ver o formato esperado.
  2. Escolha o formato de saída: Matriz JSON formatada ou JSON Lines normalizado, com um valor por linha.
  3. Clique em Validar e converter e leia as métricas: registros, válidos, linhas inválidas e campos de nível superior.
  4. Leve o resultado com Copiar ou Baixar; os dois incluem a saída completa mesmo quando a prévia é limitada.

O que o relatório mostra

Como ler o relatório de validação

A linha que não pode ser analisada aparece em vermelho com o número da linha e, quando o analisador JSON do navegador informa uma posição, também a coluna dentro dessa linha. Registros inválidos nunca entram na saída, por isso a matriz convertida pode ter menos registros do que a entrada tinha linhas.

Cada linha válida é contada e as chaves de nível superior dos objetos são somadas no painel de campos. Uma linha que resulta em matriz, número, string, booleano ou null é convertida como está e listada como informação, porque não tem campos de objeto para contar. Com chaves duplicadas vale a regra do JSON.parse: o último valor prevalece.

Números que o JSON não representa com exatidão

O JSON não tem tipo inteiro, então 12345678901234567890 chega como o double mais próximo e é reescrito como 12345678901234567000. Linhas com inteiro acima de 2^53-1 são sinalizadas como arredondadas, em vez de passarem como exatas.

Um número fora do alcance de um double, como 1e999, é reportado como erro: o JSON.parse o transforma em Infinity e o valor convertido vira null.

Entradas grandes e a prévia de 1 MB

A prévia para no primeiro 1 MB e avisa, porque gravar uma string de vários megabytes na área de texto trava a página. Copiar e Baixar sempre trazem o resultado completo: com 100.000 registros na entrada, o texto copiado foi analisado de volta nos 100.000 registros.

Medido no Chrome nesta página: 1.000 linhas em cerca de 10 ms, 10.000 linhas (0,4 MB) em 50-90 ms e 50.000 linhas (2 MB) em 0,3-0,6 s. A memória do navegador continua sendo o limite para arquivos muito grandes.

Ferramentas recentes: