Pular para o conteudo principal
CuteJSON
↑↓ Navegar Enter Selecionar Esc Fechar

Como converter JSON para NDJSON para registros e fluxos

Publicado 2 min de leitura Por Akash Kinkar Pandey

NDJSON e um valor JSON por linha, e e todo o formato. Ele existe porque um leitor pode lidar com uma linha e esquece-la, o que faz um arquivo de registro ou uma exportacao grande ser transmitida quando um unico array enorme nao e: nada precisa conter o documento inteiro na memoria ao mesmo tempo.

Usando o conversor JSON para NDJSON

Escolha uma direcao e pressione Converter. Ir para NDJSON precisa de um array, ja que essa e a forma de JSON que e uma sequencia de valores; qualquer tipo de elemento e permitido em uma linha, nao apenas objetos.

[{"id": 12345678901234567890}, "plain string", 42, null]

se torna:

{"id":12345678901234567890}
"plain string"
42
null

Cada elemento ganha sua propria linha, minificada, e o id de vinte digitos mantem cada digito porque ambas as direcoes passam pelo fluxo de tokens em vez de JSON.parse.

Linhas em branco

Uma linha completamente em branco e ignorada em vez de tratada como erro. Quase todos os arquivos NDJSON reais terminam com uma quebra de linha final, que estritamente significa uma ultima linha em branco, entao falhar em uma rejeitaria quase todos os arquivos que as pessoas realmente tem. A ferramenta reporta quantas ignorou junto com quantos registros escreveu, ja que um arquivo que acabou estando pela metade vazio vale a pena saber.

Lendo de volta, e o que uma linha quebrada te diz

Converter NDJSON para JSON valida cada linha individualmente e reporta uma falha pelo numero de linha que seu arquivo realmente tem. Dado

{"a":1}
{"a":2}
{"a":}
{"a":4}

a falha e reportada na linha 3, nao na linha 1 ou no final do arquivo, entao voce pode ir direto ao registro quebrado em um arquivo de mil linhas sem contar.

Um valor por linha, estritamente

Dois valores JSON em uma unica linha nao e NDJSON, embora um parser indulgente possa aceita-lo por acidente. Esta ferramenta o rejeita, porque aceita-lo silenciosamente significaria que um leitor a montante construido com a especificacao real discorda do que esta ferramenta escreveu. Se voce precisa que cada registro seja legivelmente indentado, use o formatador JSON no resultado apos converter de volta para um array regular; linhas NDJSON permanecem sem indentacao de proposito, ja que uma quebra de linha dentro de um valor terminaria o registro.

Voltar a todos os posts