Files

NDJSON File Inspector

Validates every line of a JSON Lines file and finds the keys that drift between records.

Loading the tool…

Processing happens locally in your browser. What you paste or load is processed by this page and is not uploaded to a server. Nothing is stored unless you use a control that says it stores something, and you can clear anything this site has kept from the privacy page.

How to use this tool

  1. Load or paste the file. One JSON object per line.
  2. Select Inspect the records.
  3. Check the invalid lines row first. Those are the records a loader will silently drop.
  4. Then read the missing key rows to see which fields are not on every record before you write a schema against them.

What ndjson file inspector does

JSON Lines is the format event pipelines actually emit, and its failure mode is different from JSON’s. One malformed line does not invalidate the file, it invalidates one record — so a loader will happily ingest 4.9 million rows and quietly drop the rest, and nobody notices until a count comes up short. The other failure mode is quieter still: a producer adds a field halfway through the day, so half the records have it and the target schema silently fills the rest with nulls.

This page parses each line on its own and reports both. Invalid lines are listed with their line numbers and the parser’s own message. Then every key is counted across the valid records and any key that is not on all of them is listed with how many records carry it, which is what you want before you write a schema or explain a null column. Everything runs in your browser and nothing is uploaded.

Frequently asked questions

Nothing that matters here. All three names describe the same arrangement: one complete JSON value per line, separated by newlines, with no enclosing array and no commas between records. This page reads all of them.

Because it loads fine and gives you the wrong answer. A key present on only half the records will land as null for the rest, and a count or an average over that column will quietly be computed on half the data. Knowing which keys are partial before you write the schema is the point.

They are counted separately. A bare number, string or array on its own line is valid JSON and a valid record, but it has no keys, so it is excluded from the key counts and reported on its own row. A file with a lot of them is usually two formats concatenated by mistake.

Not for most readers, and not here — blank lines are counted and skipped rather than reported as errors. Some strict parsers do object to them, so the count is shown in case that is what you are chasing.