Conversor JSON Lines (JSONL) ⇔ Array JSON
Converte entre o formato JSON Lines (um objeto JSON por linha) e um array JSON padrão. Útil para verificar conjuntos de dados de machine learning e saídas de logs.
Dicas de uso
- JSON Lines (JSONL) é um formato que coloca um objeto JSON independente por linha, usado como padrão em conjuntos de dados de fine-tuning da OpenAI e na saída de logs de ferramentas como Elasticsearch/Logstash.
- No modo "JSONL → Array JSON", cada linha precisa ser um objeto JSON que possa ser interpretado individualmente. Linhas em branco são ignoradas automaticamente.
- No modo "Array JSON → JSONL", toda a entrada precisa ser um único array JSON (`[ ... ]`). Cada elemento do array é gerado como uma linha de JSONL.
- Ao converter um arquivo de log grande de JSONL para um array JSON, fica mais fácil trabalhar com ele usando o comando `jq` ou o analisador de array JSON padrão da sua linguagem de programação.
Perguntas frequentes
Curiosidade — Por que surgiu o formato de "um registro por linha"
O formato JSON Lines (também chamado de JSONL) surgiu porque um array JSON padrão tem uma limitação fundamental: não é possível obter nem um único registro até que o array inteiro tenha sido carregado na memória e totalmente interpretado. Tentar tratar dados de log ou conjuntos de treinamento de machine learning com milhões de linhas como um único array JSON exigia carregar o arquivo inteiro na memória, o que causava falta de memória e tempos de interpretação enormes em arquivos muito grandes.
O JSON Lines resolve esse problema com uma regra simples: uma linha equivale a um objeto JSON completo. Como o arquivo pode ser lido e interpretado linha a linha à medida que avança, não é necessário carregá-lo inteiro na memória, o que o torna muito adequado para processamento em streaming e paralelo. Essa filosofia de design também se encaixa bem com a tradição Unix de tratar texto como "um registro por linha" (comandos como `grep`, `awk` e `sed` operam linha a linha), o que representa uma grande vantagem prática, já que se integra diretamente às ferramentas de linha de comando já existentes.
Hoje em dia, é amplamente adotado como formato de distribuição de conjuntos de dados na área de IA e machine learning, sendo comum que dados de treinamento de grandes modelos de linguagem e pares de prompt/resposta para fine-tuning sejam distribuídos no formato JSON Lines.