Qué hace esta herramienta
Entra JSON delimitado por saltos de línea, sale un arreglo.
{"id": 1, "name": "Ada"}
{"id": 2, "name": "Grace"}
[
{
"id": 1,
"name": "Ada"
},
{
"id": 2,
"name": "Grace"
}
]
Ese es todo el formato: un valor JSON por línea, sin comas entre ellos, sin corchetes alrededor. Es lo que escriben las canalizaciones de registros, lo que esperan bq load y muchas API de flujo, y lo que produce jq -c.
La línea mala se nombra
{"a": 1}
{oops}
Invalid JSON on line 3
La línea vacía se salta sin decir nada —un archivo NDJSON suele terminar con una—. La línea mal formada detiene la conversión, y el mensaje lleva su número, así que vas directo a ella. No recibes un arreglo parcial: la mitad de los registros sin nada que lo diga es peor que un error.
Los números largos conservan sus cifras
{"id": 12345678901234567890}
[
{
"id": 12345678901234567890
}
]
Pasados unos dieciséis dígitos, un número de JavaScript deja de ser exacto: lee ese identificador como número y recuperas otro, en silencio. Aquí tanto la lectura como la escritura guardan el literal tal como estaba escrito, y por eso un archivo de identificadores de Twitter o Discord sobrevive al viaje.
Lo que no hace
- Reordenar ni quitar duplicados. El arreglo guarda las líneas en el orden en que llegaron, repeticiones incluidas.
- Exigir objetos. Una línea puede ser cualquier valor JSON:
1,"x"ynullson registros válidos y pasan como tales. - Partir una línea. Dos valores en una línea son un error, no dos registros.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.