Skip to main content
QUIETLYTIC
Developer

JSONL Formatter & Validator

Validate JSON Lines file by line and convert it to a single JSON array.

Local · nothing leaves this browser Waiting for JSON Lines
Esc Clear
Per-line result

Paste JSONL on the left.

How it works

JSON Lines is not JSON — it is one JSON value per line, with no enclosing array and no commas between entries. That format is what most log shippers, streaming exports and ML dataset dumps actually emit, and pasting it into a normal JSON formatter fails on line 2's leading comma-less value.

Every line is judged on its own

A JSONL file is usually appended to over time, and a truncated final write — the process was killed mid-line — is a normal, recoverable failure mode, not a reason to reject the other 40,000 good lines. Each line is parsed independently and reported by line number, so one bad line does not hide the rest.

Blank lines are skipped, not flagged

A blank line between records is common enough in hand-edited or concatenated JSONL that treating it as an error would be noisier than useful. It is silently ignored rather than counted as a failed line.

Example

{"level":"info","msg":"start"}
{"level":"error","msg":"boom","code":500}
reports two valid lines and offers "Copy as array" to turn them into [{"level":"info","msg":"start"},{"level":"error","msg":"boom","code":500}] for tools that expect a single JSON document.

Frequently asked questions

How is this different from the JSON Formatter?

JSON Lines is not JSON — it is one JSON value per line with no enclosing array and no commas between entries. Pasting it into a normal JSON parser fails on line 2, whose leading value has no comma before it. Each line here is parsed on its own instead.

What happens when one line is malformed?

It is reported by line number and every other line is still parsed. A JSONL file is usually appended to over time, and a truncated final write — the process was killed mid-line — is a normal, recoverable failure, not a reason to reject 40,000 good lines around it.

Are blank lines treated as errors?

No, they are skipped. A blank line between records shows up often enough in hand-edited or concatenated JSONL that flagging it would be noisier than useful.

Related tools

From the intelligence desk