JSON vs JSONL: Qual é a diferença?

Um guia completo para entender os formatos JSON e JSONL (JSON Lines), suas diferenças e quando usar cada um.

Última atualização: fevereiro de 2026

Comparação rápida

RecursoJSONJSONL (JSON Lines)
EstruturaUm único objeto ou arrayUm objeto JSON por linha
Extensão do arquivo.json.jsonl ou .ndjson
AnáliseDeve analisar o arquivo inteiroPode analisar linha por linha
StreamingDifícilSuporte nativo
Arquivos grandesAlto consumo de memóriaEficiente em memória
LegibilidadeFormatado com indentaçãoCompacto, um registro por linha
Validação de esquemaJSON Schema compatívelJSON Schema por linha
Adicionar dadosDeve reescrever o arquivo inteiroSimplesmente adicionar uma nova linha

O que é JSON?

JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados que é fácil de ler e escrever para humanos, e fácil de analisar e gerar para máquinas. Baseia-se em um subconjunto de JavaScript e tornou-se o padrão de facto para troca de dados na web.

Um arquivo JSON contém um único valor JSON — geralmente um objeto ou um array. O arquivo inteiro deve ser analisado como uma unidade para acessar qualquer dado dentro dele.

Exemplo de JSON
[
{"name": "Alice", "age": 30, "city": "New York"},
{"name": "Bob", "age": 25, "city": "London"},
{"name": "Charlie", "age": 35, "city": "Tokyo"}
]

O que é JSONL (JSON Lines)?

JSONL (JSON Lines), também conhecido como Newline Delimited JSON (NDJSON), é um formato de texto onde cada linha é um objeto JSON válido. As linhas são separadas por caracteres de nova linha (\n). Diferente do JSON padrão, não há um array ou objeto envolvente ao redor dos dados.

Cada linha em um arquivo JSONL é independente e pode ser analisada individualmente. Isso torna o JSONL ideal para streaming de dados, arquivos de log e processamento de grandes conjuntos de dados sem carregar tudo na memória.

Exemplo de JSONL
{"name": "Alice", "age": 30, "city": "New York"}
{"name": "Bob", "age": 25, "city": "London"}
{"name": "Charlie", "age": 35, "city": "Tokyo"}

Principais diferenças entre JSON e JSONL

1. Formato e estrutura do arquivo

JSON

JSON envolve todos os dados em um único objeto ou array. O arquivo deve ser sintaticamente válido como um todo — um colchete faltante no final invalida o arquivo inteiro.

JSONL

JSONL armazena um objeto JSON por linha. Cada linha é independente — se uma linha tem um erro, as outras linhas ainda podem ser analisadas.

2. Análise e uso de memória

JSON

JSON requer carregar e analisar o arquivo inteiro de uma vez. Um arquivo JSON de 1 GB precisaria de aproximadamente 1 GB ou mais de memória para ser analisado.

JSONL

JSONL pode ser lido e analisado linha por linha (streaming). Mesmo um arquivo JSONL de 10 GB pode ser processado com uso mínimo de memória lendo uma linha por vez.

3. Streaming e dados em tempo real

JSON

JSON não foi projetado para streaming. Você não pode começar a processar dados até que o arquivo ou resposta completa seja recebido e analisado.

JSONL

JSONL é ideal para streaming. Cada linha pode ser processada assim que é recebida, tornando-o perfeito para fluxos de dados em tempo real, logs e eventos enviados pelo servidor.

4. Adicionar e gravar dados

JSON

Adicionar dados a um array JSON requer ler o arquivo inteiro, analisá-lo, adicionar o novo elemento e reescrever o arquivo completo.

JSONL

Adicionar dados a um arquivo JSONL é tão simples quanto acrescentar uma nova linha no final. Não é necessário ler ou modificar os dados existentes. Isso é O(1) contra O(n) para JSON.

5. Legibilidade humana

JSON

JSON suporta formatação com indentação, tornando-o muito legível para arquivos de configuração e respostas de API.

JSONL

JSONL é compacto por design — um registro por linha. É otimizado para processamento por máquinas em vez de leitura humana, embora linhas individuais possam ser formatadas.

Quando usar JSON vs JSONL

JSONUse JSON quando:
  • Trabalhar com arquivos de configuração
  • Construir corpos de requisição/resposta de API REST
  • Armazenar dados estruturados pequenos (menos de 10 MB)
  • Os dados precisam ser legíveis e editáveis por humanos
  • Trabalhar com estruturas de dados hierárquicas aninhadas
  • Troca de dados no lado do navegador
JSONLUse JSONL quando:
  • Processar grandes conjuntos de dados (mais de 100 MB)
  • Transmitir dados em tempo real
  • Escrever arquivos de log e dados de eventos
  • Treinar modelos de aprendizado de máquina (OpenAI, Hugging Face)
  • Pipelines ETL e processamento de dados
  • Adicionar dados com frequência
  • Processar dados com ferramentas Unix (grep, awk, sed)

Casos de uso comuns

Aprendizado de máquina e IA

JSONL

JSONL é o formato padrão para dados de treinamento de ML. OpenAI usa JSONL para conjuntos de dados de ajuste fino, e muitos frameworks de ML esperam entrada em JSONL. Cada linha representa um exemplo de treinamento.

Log de aplicações

JSONL

Logs de servidor, eventos de aplicação e trilhas de auditoria são naturalmente adequados para JSONL. Cada evento é escrito como uma única linha, facilitando adicionar, buscar com grep e processar com ferramentas de streaming.

APIs web e configuração

JSON

APIs REST geralmente usam JSON para corpos de requisição e resposta. Arquivos de configuração (.json) usam JSON para configurações legíveis e estruturadas com objetos aninhados.

Big Data e análise

JSONL

Pipelines de dados, processos ETL e ferramentas de análise usam JSONL para processar grandes volumes de dados. Cada registro pode ser processado independentemente, permitindo processamento paralelo e padrões MapReduce.

Exemplos de código

Ler JSON em JavaScript
// Reading JSON - must load entire file
const data = JSON.parse(fs.readFileSync('data.json', 'utf8'));
// Access data
data.forEach(item => {
console.log(item.name);
});
Ler JSONL em JavaScript
// Reading JSONL - stream line by line
import { createReadStream } from 'fs';
import { createInterface } from 'readline';
const rl = createInterface({
input: createReadStream('data.jsonl')
});
for await (const line of rl) {
const item = JSON.parse(line);
console.log(item.name);
}
Converter JSON para JSONL
// JSON array to JSONL
const jsonArray = JSON.parse(fs.readFileSync('data.json', 'utf8'));
const jsonl = jsonArray
.map(item => JSON.stringify(item))
.join('\n');
fs.writeFileSync('data.jsonl', jsonl);
Converter JSONL para JSON
// JSONL to JSON array
const lines = fs.readFileSync('data.jsonl', 'utf8')
.split('\n')
.filter(line => line.trim());
const jsonArray = lines.map(line => JSON.parse(line));
fs.writeFileSync('data.json', JSON.stringify(jsonArray, null, 2));

Converter JSON e JSONL online

Use nossas ferramentas online gratuitas para converter entre formatos JSON e JSONL instantaneamente — sem instalação.

Experimente nosso visualizador de JSONL

Visualize e edite arquivos JSONL de até 1 GB instantaneamente no seu navegador. Sem uploads, sem cadastro.

Perguntas frequentes

JSON vs JSONL: Qual é a diferença? Guia completo