Tools · NDJSON
NDJSON viewer
One JSON value per line. A broken line is a broken line, not a broken file — it is counted, shown, and the other lines still read.
no signup · runs entirely in your browser · ⌘V works anywhere on this page
What it does
- Reads the sample as 5 lines, 1 of them broken — the verdict says so, and “broken only” shows just that one
- Level chips — info · warn · error — from the level field, several at once, each with its count
- A filter box that takes words, field=value and /regex/, with the match count measured
- A record’s fields in a panel; a field holding packed JSON opens as nested rows
- Convert the rows to CSV, a Markdown table, YAML or a JSON array; Compare two runs by record
What it will not do
- Stream from a URL or tail a file — the text you paste or drop is the text it reads.
- Fix a broken line without asking. Broken rows are grouped by cause and fixed by the group when you say.
- Upload the file. It is read in your tab, and a large input is stored in this browser only.
The sample
The text below is what the first chip opens — a real document the engine reads, not an illustration written for this page.
How
- Drop the .ndjson or .jsonl file on the page, or paste its lines.
- Read the verdict — the record count, and how many will not parse — and click a row for its fields.
- Filter by level, by field=value or broken only; Convert or Compare from the row above the list.
Questions
What is the difference between NDJSON and JSON Lines?
None that matters here: both are one JSON value per line, newline-separated. .ndjson, .jsonl and .log files open the same way.
Can I convert NDJSON to a JSON array?
Yes — Convert writes the rows as a JSON array, or as CSV, YAML, XML or a Markdown table.
Can I see only the errors?
Yes. The level chips filter by the level field, and “broken only” shows the lines that did not parse.
Does a broken line stop the file?
No. Each line parses on its own; the broken one is counted and listed, and the others read.