Validate NDJSON Online — Report or Extract Valid Lines

Validate NDJSON: max lines, strict or skip bad lines, report counts or extract valid lines — entirely in your browser.

Loading…
NDJSON validator — report or extract
Check JSON-lines streams in the browser. Fail fast in strict mode, or salvage valid lines when skipping bad rows.

Developer notes

onBadLine controls strict vs skip; validation report and extracted valid lines are always shown together. strict → failed run and empty right editor when any line is bad. skip → compact valid lines in the right editor; issues listed in the report panel. Extract never pretty-prints. Copy, Download, and Expand (small buttons) above each editor. Debounced ~300 ms while typing or changing options. Load sample sets skip: 10 lines, 3 bad (truncated JSON, plain text, invalid keys) — line numbers match non-empty rows in the editor. strict fails the whole run when any line is bad.

Options

Max lines
Hard cap on non-empty lines (1000 or 10000). Exceeding the cap fails the run.
On bad line
strict fails the run when any line is invalid; skip continues and lists issues.

When teams pick this route

Verify an NDJSON export before upload. Split valid lines out of a contaminated stream (skip mode). Cap work with maxLines before pasting huge dumps. Download the salvaged valid NDJSON from the right editor.

Worked examples

Mixed stream — skip + report (Load sample)

Input

{"ts":"2026-07-12T09:58:00.001Z","level":"info","msg":"boot","service":"api"} {"ts":"2026-07-12T09:58:00.120Z","level":"info","msg":"listening","port":3000} {"broken {"ts":"2026-07-12T09:58:01.004Z","level":"error","msg":"db timeout","query":"orders.list"} not-a-json-line {"ts":"2026-07-12T09:58:01.200Z","level":"warn","msg":"retry scheduled","attempt":2} {"ts":"2026-07-12T09:58:01.450Z","level":"info","msg":"ok","count":12} {"ts":"2026-07-12T09:58:01.900Z","level":"error","msg":"auth failed","userId":"u9"} {incomplete: true {"ts":"2026-07-12T09:58:02.100Z","level":"debug","msg":"span closed","span":"http.request"}

Result

10 non-empty lines → 7 valid, 3 invalid (lines 3, 5, 9). skip → Valid with issues in the report; 7 compact valid lines appear in the right editor.

Strict report on bad line

Input

{"a":1} {bad}

Result

ok: false — summary counts + issue on line 2

Navigate related log tools

Format with format JSON logs, filter via filter JSON logs, or open the logs hub.

NDJSON validator FAQ

Strict, skip, extract

Is there a separate split-ndjson tool?

No. Use onBadLine skip — valid lines appear in the right editor while the report lists bad rows.

What if I exceed maxLines?

Validation fails with an error citing count vs max. Lines are never silently truncated.

Does extract pretty-print?

No — extracted lines are always compact JSON.stringify output.

Line-oriented JSON/NDJSON and Nginx/Apache access logs — format, filter, validate, and CSV/TSV.