O que faz
JSON Lines (também chamado JSONL ou NDJSON) guarda um valor JSON por linha. É o formato preferido para logs, exportações de dados, APIs de streaming, cargas em massa no BigQuery e no Elasticsearch e conjuntos de dados de machine learning, como os arquivos de fine-tuning da OpenAI, porque um programa consegue ler ou acrescentar um registro de cada vez sem carregar o arquivo inteiro.
Muitas ferramentas, porém, esperam um único array JSON. Este conversor transforma JSON Lines em um array JSON formatado e transforma um array JSON de volta em JSON Lines, com um registro compacto por linha.
Como usar
- Escolha a Direção: JSON Lines → JSON ou JSON → JSON Lines.
- Cole seus dados, envie um arquivo
.jsonl,.ndjsonou.json, ou clique em Exemplo. - Para saída JSON, escolha 2 ou 4 espaços de indentação, ou Compacto para uma única linha.
- Copie ou baixe o resultado, ou use Usar como entrada para converter de volta.
Se uma linha não for JSON válido, o erro informa o número da linha e a coluna, para você ir direto ao registro quebrado — útil quando um log tem uma entrada truncada entre milhares.
Exemplo
Estas três linhas de JSON Lines:
{"id": 1, "event": "signup"}
{"id": 2, "event": "login"}
{"id": 3, "event": "logout"}
viram este array JSON:
[
{
"id": 1,
"event": "signup"
},
{
"id": 2,
"event": "login"
},
{
"id": 3,
"event": "logout"
}
]
Na direção contrária, cada elemento do array é escrito em uma linha, sem espaços, e o arquivo termina com uma quebra de linha.
Quando usar cada um
Use JSON Lines quando os registros são produzidos ou consumidos um de cada vez: acrescentar a logs, transmitir resultados, dividir um grande conjunto de dados entre workers ou processar com ferramentas por linha como grep, head e wc -l. Use um array JSON quando um programa precisa da coleção inteira de uma vez, como um arquivo de configuração, dados de teste ou o corpo de resposta de um endpoint REST.
Perguntas frequentes
› Qual a diferença entre JSONL, NDJSON e JSON Lines?
São nomes do mesmo formato: um valor JSON completo por linha, separado por quebras de linha. JSON Lines (.jsonl) e JSON delimitado por nova linha (.ndjson) diferem só no nome e na extensão.
› Linhas em branco são permitidas?
Linhas em branco e a quebra de linha final são ignoradas na leitura. Quebras de linha do Windows (CRLF) e o BOM do UTF-8 também são tratados.
› Meu arquivo é JSON formatado, com um objeto ocupando várias linhas. Por que dá erro?
Em JSON Lines cada valor precisa caber em uma única linha. Se a entrada é um array JSON comum, mude a direção para JSON → JSON Lines; se é uma sequência de objetos formatados, coloque-os primeiro em um array.
› A conversão altera números ou a ordem das chaves?
Não. Os valores e a ordem das chaves são mantidos; só os espaços mudam. Inteiros muito grandes, além do intervalo seguro do JavaScript (cerca de 9 quatrilhões), podem perder precisão, como em qualquer ferramenta JSON no navegador.