JSONL Viewer: Inspect JSON Lines Records
Inspect JSON Lines (JSONL) and NDJSON in this browser. Each line is parsed on its own, so one broken record does not fail the file. Object keys are unioned into a table; arrays and primitives stay inspectable. Files are read with FileReader. Nothing is uploaded or stored.
Drop a .jsonl, .ndjson, .json, or .txt file here. Client-only FileReader. Caps: 1.5 MB and 8,000 lines.
Line errors
Each line is independent. A syntax error reports its line number and parser message without stopping the rest of the file. Click a row to inspect the raw text.
Record table
Object records share a union of top-level keys (first 20 keys). Nested values stay compact JSON in the cell. Arrays and primitives use the Value column. Click a header to sort; click a row to inspect.
No records match the filter.
Inspector
Select a table row or an error to inspect it.
Copy and export
Exports use the current filter and only valid records. Copied JSONL includes a trailing newline, as JSON Lines recommends. Downloads stay on this device.
JSON Lines notes
JSON Lines, JSONL, and NDJSON are the same idea: UTF-8 text, one complete JSON value per line, newline separated. jsonlines.org forbids a UTF-8 BOM and treats a blank line as invalid; a terminator after the last value is recommended. This viewer strips a leading BOM, accepts CRLF, and can skip blanks so a trailing newline does not look like an error. Pretty-printed JSON that spans lines is not JSONL. Caps keep the tab responsive: 1.5 MB input, 8,000 lines, 32,768 characters per line, 40 table rows per page. Larger logs belong in jq, Miller, or DuckDB.