NDJSON (JSON delimitado por nuevas líneas)
NDJSON (JSON delimitado por nuevas líneas) es un formato donde cada línea es un objeto JSON independiente válido. Este diseño simple posibilita el procesamiento por flujo, la adición de registros y el procesamiento línea por línea sin cargar todo el archivo en memoria.
Tipo MIME
application/x-ndjson
Tipo
Texto
Compresión
Sin pérdida
Ventajas
- + Streamable — process one record at a time without loading the entire file
- + Appendable — add new records by appending lines
- + Works with Unix tools (grep, head, tail, wc)
- + Standard for Elasticsearch bulk, BigQuery, and data pipelines
Desventajas
- − No standard for the overall file (no top-level schema)
- − Cannot represent a single JSON object spanning multiple lines
- − Less compact than binary formats for large datasets
Cuándo usar .NDJSON
Usa NDJSON para archivos de log, ingesta de datos en streaming, APIs masivas (Elasticsearch, BigQuery) y cualquier escenario donde los datos necesiten procesarse registro a registro.
Detalles técnicos
NDJSON usa '\n' (0x0A) como separador de líneas, donde cada línea es un objeto o valor JSON completo válido. Sin comas entre registros, sin envolturas de array/objeto. Codificación UTF-8 requerida. Es idéntico a JSON Lines (JSONL) y Newline JSON.
Historia
NDJSON surgió como una convención comunitaria para JSON en streaming. También conocido como JSON Lines (JSONL), el formato se formalizó en jsonlines.org y ndjson.org. Herramientas como Elasticsearch bulk API, BigQuery y muchos pipelines de datos lo adoptaron como formato de ingesta estándar.