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
Arquivo JSONL válido
{"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

Objetos simples
{"id":1,"name":"Alice","email":"alice@example.com"}
{"id":2,"name":"Bob","email":"bob@example.com"}
{"id":3,"name":"Charlie","email":"charlie@example.com"}
Objetos aninhados
{"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:

Tipos mistos
{"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:

PopularFormato 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:

Linha de comando
# View first 5 lines
head -n 5 data.jsonl
# Count total lines (records)
wc -l data.jsonl
# Pretty-print each line with jq
cat data.jsonl | jq .
# Filter by field value
cat data.jsonl | jq 'select(.age > 30)'

O módulo json integrado do Python lida com JSONL naturalmente:

Python
import json
with 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:

JavaScript / 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);
}

Visualizador de JSONL online

Para uma abordagem visual, use jsonl.co para abrir e explorar arquivos JSONL de até 1 GB — sem uploads, tudo roda no seu navegador.

Como criar arquivos JSONL

Criar arquivos JSONL é simples — basta escrever um valor JSON por linha.

Python
import json
records = [
{"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')
JavaScript / Node.js
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.

JSONJSON padrão
[
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]
JSONLJSONL (JSON Lines)
{"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 popular

JSONL é 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

JSONL

Sistemas 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

JSONL

Ferramentas 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

JSONL

APIs 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:

.jsonlA extensão JSONL padrão, a mais amplamente utilizada
.ndjsonNewline Delimited JSON — tecnicamente o mesmo formato com um nome diferente
.jsonAlgumas ferramentas geram JSONL com extensão .json, o que pode causar confusão

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.

Experimente nosso visualizador de JSONL

Abra, visualize e edite arquivos JSONL de até 1 GB — direto no seu navegador. Sem uploads, 100% privado.

Perguntas frequentes

O que é JSONL? Guia do Formato JSON Lines, Exemplos e Cas...