Skip to content
Novus Examples
ndjson170 B

NDJSON Stream

A newline-delimited JSON (NDJSON) stream of event records — for testing streaming JSON parsers.

Preview — first 5 linesndjson
{"id":1,"event":"page_view","path":"/"}
{"id":2,"event":"click","target":"download"}
{"id":3,"event":"page_view","path":"/about"}
{"id":4,"event":"search","query":"csv"}

Specifications

Format
NDJSON
Records
4
Line Endings
LF
Encoding
UTF-8

What is a .ndjson file?

NDJSON (Newline-Delimited JSON) is a streaming format where each newline-separated line is a standalone JSON object, functionally equivalent to JSON Lines. It enables incremental processing of large datasets and streaming APIs. Each record is parsed independently of the rest.

How to use this file

Use an example NDJSON to test streaming ingestion, chunked HTTP or API response parsing, and tools that process records incrementally without loading the full file.

How to use this file for testing

“NDJSON Stream” is a deterministic Novus Examples fixture for JSON parsing, Data import. Flat, deeply nested, JSON Lines, and intentionally invalid JSON for testing parsers and error handling.

Documented properties for this file: 4 records · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Data fixtures document their exact quirks — delimiters, encodings, null handling, schema, and row counts — in the spec table. Point your parser or importer at the file and assert it handles the documented edge cases; clean and deliberately-messy siblings make before/after diffs straightforward.

Feed the file to your parser and assert it handles the documented quirks — quoted delimiters, embedded newlines, ragged rows, or invalid syntax; the valid↔invalid distinction is labelled in the title.

Code examples

import json

with open("stream.ndjson") as f:
    rows = [json.loads(line) for line in f if line.strip()]
print(len(rows))

Generated by generation/data_formats.py. Free for any use, no attribution required — license.