Boneyard Tools

NDJSON / JSONL Validator

Drop in an NDJSON or JSONL file and this tool parses every line as its own JSON value. You get a count of valid, invalid, and blank lines, a green all-clear when the whole file checks out, and a table listing the exact line number and parse error for anything that fails. When every line is a JSON object it also reports whether the objects share a consistent set of top-level keys. The file is read entirely in your browser and never uploaded.

How to validate an NDJSON or JSONL file

  1. Drag a .ndjson or .jsonl file onto the box, or click to browse for one.
  2. Read the summary: total, valid, invalid, and blank line counts.
  3. If anything failed, scan the error table for the line number and message.

Examples

A log export with one broken line

{"event":"login"}
{event:"logout"}
{"event":"ping"}
3 lines, 2 valid, 1 invalid. Error on line 2: unexpected token.

Frequently asked questions

What is NDJSON / JSONL?

NDJSON (newline-delimited JSON) and JSONL (JSON Lines) are the same idea: a text file where each line is a complete, independent JSON value, usually an object. It is a common format for logs, data exports, and streaming records because a file can be read and validated one line at a time.

Is my file uploaded anywhere?

No. The file is read and validated entirely in your browser using JavaScript. Nothing is sent to a server, so even sensitive logs or data exports stay on your device.

How does validation work?

The file is decoded as UTF-8 and split on newlines. Each non-blank line is parsed with the same JSON engine your browser uses. A line is valid if it parses and invalid if parsing throws, and the error message is captured along with the line number.

Are blank lines treated as errors?

No. Blank or whitespace-only lines are allowed and counted separately, not as failures. This matches how most NDJSON readers behave, where stray blank lines between records are skipped.

What does the consistent keys check mean?

When every line is valid and every value is a JSON object, the tool compares the top-level keys of each object. It reports whether they all share the same key set and lists the keys common to every record, which helps spot rows with missing or extra fields.

Why does it only show the first errors?

To stay fast on large or badly broken files, the error table is capped at the first 50 failures. The total invalid count still reflects every bad line, so you always know the full scope even when only the first errors are listed.

Related tools