O que é JSONL? Guia completo do formato JSON Lines
Tudo o que você precisa saber sobre JSON Lines — sintaxe, exemplos, casos de uso e melhores práticas.
Última atualização: fevereiro de 2026
O que é JSONL?
JSONL (JSON Lines), também conhecido como Newline Delimited JSON (NDJSON), é um formato de dados baseado em texto onde cada linha é um valor JSON válido, separado por caracteres de nova linha. Diferente do JSON padrão, que envolve os dados em um único array ou objeto, JSONL armazena um registro por linha.
Este design simples torna o JSONL ideal para streaming, registro de eventos e processamento de grandes conjuntos de dados — cada linha pode ser lida, analisada e processada independentemente sem carregar o arquivo inteiro na memória.
O formato foi popularizado por ferramentas e plataformas que lidam com grandes volumes de dados, incluindo OpenAI (para conjuntos de dados de ajuste fino), BigQuery, Apache Spark e sistemas de gerenciamento de logs.
Regras de sintaxe do JSONL
O formato JSONL segue algumas regras simples:
- Cada linha deve ser um valor JSON válido (objeto, array, string, número, booleano ou null)
- As linhas são separadas por caracteres de nova linha (\n)
- Sem vírgulas ou separadores entre linhas
- Os arquivos devem usar codificação UTF-8
- A nova linha final no fim do arquivo é opcional
- Linhas vazias são ignoradas pela maioria dos analisadores
{"name":"Alice","age":30,"city":"New York"}{"name":"Bob","age":25,"city":"London"}{"name":"Charlie","age":35,"city":"Tokyo"}
Nota: Cada linha é um objeto JSON completo e independente. Não há vírgulas entre linhas nem array envolvente.
Exemplos de JSONL
{"id":1,"name":"Alice","email":"alice@example.com"}{"id":2,"name":"Bob","email":"bob@example.com"}{"id":3,"name":"Charlie","email":"charlie@example.com"}
{"user":{"name":"Alice","age":30},"scores":[95,87,92]}{"user":{"name":"Bob","age":25},"scores":[88,91,76]}
As linhas do JSONL não precisam ser do mesmo tipo — cada linha apenas precisa ser JSON válido:
{"event":"login","user":"alice","timestamp":"2026-01-15T10:30:00Z"}{"event":"purchase","user":"alice","amount":29.99,"items":["book","pen"]}{"event":"logout","user":"alice","timestamp":"2026-01-15T11:45:00Z"}
Um dos usos mais populares do JSONL é para conjuntos de dados de ajuste fino do OpenAI:
{"messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"What is JSONL?"},{"role":"assistant","content":"JSONL is a text format where each line is a valid JSON value."}]}{"messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"How do I read a JSONL file?"},{"role":"assistant","content":"Read the file line by line, parsing each line as JSON."}]}
Como ler arquivos JSONL
Arquivos JSONL podem ser lidos com qualquer ferramenta que suporte processamento de texto linha por linha. Aqui estão os métodos mais comuns:
Use ferramentas padrão do Unix para inspecionar arquivos JSONL:
# View first 5 lineshead -n 5 data.jsonl# Count total lines (records)wc -l data.jsonl# Pretty-print each line with jqcat data.jsonl | jq .# Filter by field valuecat data.jsonl | jq 'select(.age > 30)'
O módulo json integrado do Python lida com JSONL naturalmente:
import jsonwith open('data.jsonl', 'r') as f:for line in f:record = json.loads(line)print(record['name'])
Leia arquivos JSONL linha por linha no Node.js:
import { createReadStream } from 'fs';import { createInterface } from 'readline';const rl = createInterface({input: createReadStream('data.jsonl')});for await (const line of rl) {const record = JSON.parse(line);console.log(record.name);}
Como criar arquivos JSONL
Criar arquivos JSONL é simples — basta escrever um valor JSON por linha.
import jsonrecords = [{"name": "Alice", "age": 30},{"name": "Bob", "age": 25},{"name": "Charlie", "age": 35},]with open('output.jsonl', 'w') as f:for record in records:f.write(json.dumps(record) + '\n')
import { writeFileSync } from 'fs';const records = [{ name: 'Alice', age: 30 },{ name: 'Bob', age: 25 },{ name: 'Charlie', age: 35 },];const jsonl = records.map(r => JSON.stringify(r)).join('\n');writeFileSync('output.jsonl', jsonl + '\n');
Pode adicionar comentários no JSONL?
Não. A especificação do JSONL não suporta comentários. Cada linha em um arquivo JSONL deve ser um valor JSON válido — e o próprio JSON não tem sintaxe de comentários.
Se precisar incluir metadados ou anotações junto com seus dados, as soluções comuns incluem:
- 1Adicionar um campo de metadados aos seus objetos JSON: '{'"_comment": "dados de teste", "name": "Alice"'}'
- 2Usar um arquivo de metadados separado junto ao seu arquivo JSONL
- 3Adicionar metadados como a primeira linha do arquivo: '{'"_meta": '{'"version": "1.0", "created": "2026-01-15"'}''}'
Tenha em mente que quaisquer campos de "comentário" serão analisados como dados regulares. As aplicações que consomem o arquivo JSONL devem ser projetadas para ignorar campos de metadados.
JSONL vs JSON
A diferença principal é a estrutura. JSON envolve tudo em um único valor, enquanto JSONL armazena um valor por linha.
[{"name": "Alice", "age": 30},{"name": "Bob", "age": 25}]
{"name":"Alice","age":30}{"name":"Bob","age":25}
- JSON deve ser totalmente carregado na memória para ser analisado; JSONL pode ser lido linha por linha
- JSON precisa de vírgulas entre elementos; JSONL usa novas linhas
- JSON é melhor para arquivos de configuração e APIs; JSONL é melhor para grandes conjuntos de dados e streaming
- Adicionar dados ao JSON requer reescrever o arquivo inteiro; JSONL simplesmente adiciona uma nova linha
Para uma comparação detalhada, consulte nosso guia completo JSON vs JSONL guide.
Casos de uso comuns
Aprendizado de máquina e IA
Mais popularJSONL é o formato padrão para dados de treinamento de ML. OpenAI, Hugging Face e outras plataformas de IA usam JSONL para conjuntos de dados de ajuste fino porque cada exemplo de treinamento é uma linha independente que pode ser embaralhada, amostrada e transmitida de forma eficiente.
Arquivos de log e fluxos de eventos
JSONLSistemas de log estruturado (ELK stack, Datadog, CloudWatch) geram logs em formato JSONL. Cada entrada de log é uma linha JSON, facilitando adicionar novas entradas e processar logs em tempo real.
Processamento de Big Data
JSONLFerramentas como Apache Spark, BigQuery e AWS Athena suportam JSONL nativamente. O formato linha por linha permite processamento paralelo em sistemas distribuídos — cada worker pode processar um bloco de linhas independentemente.
APIs de streaming
JSONLAPIs que retornam grandes conjuntos de resultados frequentemente usam streaming JSONL. O cliente pode começar a processar os resultados imediatamente à medida que chegam, sem esperar a resposta completa.
Extensões de arquivo JSONL
Arquivos JSONL comumente usam estas extensões:
As três extensões contêm o mesmo formato — um valor JSON por linha. O tipo MIME para JSONL é application/jsonl ou application/x-ndjson.
Experimente nossas ferramentas JSONL gratuitas
Valide sua sintaxe JSONL, converta entre formatos e visualize arquivos — tudo no seu navegador.