NDJSON es un valor JSON por linea, y ese es el formato completo. Existe porque un lector puede manejar una linea y olvidarla, que es lo que hace que un archivo de registro o una exportacion grande sea transmisible cuando un array enorme unico no lo es: nada tiene que mantener el documento completo en memoria a la vez.
Usando el convertidor JSON a NDJSON
Elige una direccion y presiona Convertir. Ir a NDJSON necesita un array, ya que esa es la forma de JSON que es una secuencia de valores; cualquier tipo de elemento se permite en una linea, no solo objetos.
[{"id": 12345678901234567890}, "plain string", 42, null]
se convierte en:
{"id":12345678901234567890}
"plain string"
42
null
Cada elemento obtiene su propia linea, minificada, y el id de veinte
digitos mantiene cada digito porque ambas direcciones van a traves del
flujo de tokens en vez de JSON.parse.
Lineas en blanco
Una linea completamente en blanco se ignora en vez de tratarse como un error. Casi todos los archivos NDJSON reales terminan con un salto de linea al final, que estrictamente significa una ultima linea en blanco, asi que fallar en una rechazaria casi todos los archivos que la gente realmente tiene. La herramienta reporta cuantas ignoro junto con cuantos registros escribio, ya que un archivo que resulto estar mitad vacio vale la pena saberlo.
Leyendo de vuelta, y que te dice una linea rota
Convertir NDJSON a JSON valida cada linea por su reporte y reporta un fallo por el numero de linea que tu archivo realmente tiene. Dado
{"a":1}
{"a":2}
{"a":}
{"a":4}
el fallo se reporta en la linea 3, no en la linea 1 o al final del archivo, asi que puedes ir directo al registro roto en un archivo de mil lineas sin contar.
Un valor por linea, estrictamente
Dos valores JSON en una sola linea no es NDJSON, aunque un parser indulgente podria aceptarlo por accidente. Esta herramienta lo rechaza, porque aceptarlo silenciosamente significaria que un lector descendiente construido con la especificacion real disagree con lo que esta herramienta escribio. Si necesitas que cada registro sea legiblemente indentado, usa el formateador JSON en el resultado despues de convertir de vuelta a un array regular; las lineas NDJSON se mantienen sin indentar a proposito, ya que un salto de linea dentro de un valor terminaria el registro.