NDJSON test data generator
One JSON object per line, up to 100,000 lines — the format that streams: pipe it through jq, bulk-load it into Elasticsearch, or feed it to BigQuery. Free and fully client-side.
What the output looks like
{"reading_id":"b3c9a1f2-6d4e-4a7b-9c1d-2f8e5a6b7c8d","temperature_c":21.4,"recorded_at":1742291286}
{"reading_id":"7f2e0d94-1c3b-4e5a-8f6d-9a0b1c2d3e4f","temperature_c":-3.1,"recorded_at":1742291347}
Why NDJSON?
Newline-delimited JSON keeps JSON's typed values but drops the enclosing array, so each line is a complete, independently parseable record. Tools can process line one before line two exists — which is exactly what log pipelines, bulk loaders and streaming consumers want, and why NDJSON is the native ingestion format for Elasticsearch, BigQuery and most log tooling.
Where NDJSON shines
jqpipelines — filter, group and reshape records without loading the whole file.- Elasticsearch — interleave with action lines for the
_bulkAPI. - BigQuery —
bq load --source_format=NEWLINE_DELIMITED_JSONtakes the file as-is. - Big exports — 100,000 rows stream through line-based tools with constant memory.
Quick recipe: group by country with jq
jq -s 'group_by(.country) | map({country: .[0].country, users: length})' \
fundata_10000_rows.ndjson
NDJSON compatibility and edge cases
Each UTF-8 line is a complete JSON object with no outer array and no trailing comma.
Newlines inside string values are escaped, so one physical line always equals one
record. This is also called JSON Lines or .jsonl; the content model is the
same even when tools prefer a different extension. Native numbers, booleans and
nulls are preserved exactly as they are in JSON export.
Common NDJSON questions
What is the difference between JSON and NDJSON?
JSON export wraps all records in one array. NDJSON writes one object per line, which lets streaming tools process records independently without parsing the entire file first.
Can I use the file as JSONL?
Yes. NDJSON and JSON Lines use the same one-object-per-line structure. Rename the extension to .jsonl when a particular importer expects it.
For ingestion fixtures and repeatable pipeline tests, see QA test-data patterns.
Other formats
The same schema exports to all six formats — switch with one dropdown: CSV, TSV, JSON, SQL, XML. New here? Start with the getting-started guide or the full field type reference.