JSONL é onde logs de conversa, conjuntos de avaliação, dados de treino e trabalhos em lote acabam, e ele falha de jeitos que o JSON comum não falha. Uma linha ruim no meio de cinquenta mil boas; uma linha em branco no fim; um arquivo que na verdade é um array formatado com vírgula no fim de cada linha. “JSON inválido” sobre um arquivo de quarenta megas não ajuda ninguém, então aqui tudo é relatado por linha, com o número que um editor mostraria. Linhas em branco são puladas em vez de contadas como erro, e o caso do array se passando por JSONL é detectado e oferecido como conversão de um clique.
Recursos
Cada falha apontada no número da linha
Linhas em branco puladas sem deslocar a numeração
Detecta um array formatado colado como JSONL, e converte
Todas as chaves do conjunto, com quantos registros as têm
Filtra por caminho com pontos, ou pelo registro inteiro
Percorra os registros um a um, formatados
Converte para array JSON e de volta
Solte um arquivo, ou cole
Como usar Visualizador e validador JSONL
Solte um arquivo .jsonl ou cole
Confira as contagens de válidos e inválidos
Filtre para os registros que interessam
Percorra-os, ou exporte como array
Exemplo
Entrada
line 2: not json
Saída
Unexpected token o in JSON at position 1
As outras 49.999 linhas continuam analisadas e utilizáveis.
Erros comuns e solução de problemas
Todas as linhas falham. — Provavelmente é um array JSON formatado e não JSONL. Esse caso é detectado e uma conversão é oferecida.
Os números de linha não batem com meu editor. — Deveriam: linhas em branco são puladas na análise mas não deslocam a numeração, então a linha relatada é a que seu editor mostra.
Meu caminho de filtro não acha nada. — Caminhos usam pontos, com segmentos numéricos para índices de array: messages.0.content. A lista de chaves acima do filtro mostra o que existe de fato.
Um arquivo enorme fica lento. — Tudo é analisado no navegador, então um arquivo muito grande é limitado pela memória. Dividir é mais rápido que esperar.
Perguntas frequentes
O que é JSONL?
Um valor JSON completo por linha, sem vírgulas entre eles e sem colchetes envolvendo. Ele transmite e acrescenta bem, e por isso logs e conjuntos de dados usam: uma única linha malformada não invalida o arquivo.
Por que meu arquivo parece JSONL e falha?
Quase sempre porque é um array formatado: um objeto espalhado por várias linhas, com vírgula no fim de cada uma. Isso é JSON válido e não é JSONL válido, e aqui é detectado com uma conversão à mão.
Como funciona o filtro por caminho?
Segmentos separados por pontos, com números para índices de array. O valor naquele caminho é buscado como substring sem diferenciar maiúsculas, então filtrar pelo conteúdo da primeira mensagem é uma expressão só.
Linhas em branco no fim são um problema?
Não. Um arquivo terminando com quebra de linha é normal e correto; linhas em branco são contadas à parte e nunca relatadas como erro.
Meu arquivo é enviado?
Não. Tudo é analisado no navegador, o que importa pelo conteúdo habitual de um JSONL: logs de conversa e dados de treino estão entre os arquivos mais sensíveis de uma equipe.
Ferramentas relacionadas
Validador de datasets — Verifique um dataset JSONL de chat atrás dos erros que derrubam um treino.