Browse NDJSON as a searchable table
The JSON Lines / NDJSON Viewer turns a stream of newline-delimited JSON into a readable table. Each line becomes a row, top-level keys become columns, and a single click expands any row to its full pretty-printed JSON. A search box filters the view across every field at once.
What is NDJSON / JSON Lines?
NDJSON (Newline-Delimited JSON) and JSON Lines (JSONL) are two names for the same format: one complete, self-contained JSON value per line. Unlike a JSON array, each line is parseable on its own, which makes the format excellent for streaming, log ingestion, and bulk data exports.
Common sources of NDJSON include:
- Log exporters — systems like Elasticsearch, Loki, and Datadog export query results as JSONL.
- BigQuery exports — BigQuery’s JSON export format is NDJSON, one row per line.
- LLM streaming responses — Server-Sent Events and streaming APIs often return newline-delimited JSON chunks.
- Data pipeline outputs — ETL tools often write intermediate files as JSONL because each line can be processed independently.
- AI training data — many dataset formats (including OpenAI fine-tune format) use JSONL.
How it works
Each non-blank line is parsed independently with JSON.parse. Objects populate
the table directly; other valid JSON values (numbers, arrays) are wrapped so they
still display. Lines that fail to parse are kept in place, highlighted, and
annotated with their error message, so malformed records stand out without
disrupting the rest of the table.
Columns are derived from the union of top-level keys across the valid object rows, preserving the order in which keys first appear and capping the display at twelve columns for readability. Nested objects and arrays are rendered as compact JSON inside their cell. The search box performs a case-insensitive substring match against each line’s raw text, so a single term can match a value in any field.
Practical use cases
Pre-load validation. Before importing a JSONL file into BigQuery or Elasticsearch, paste a sample here. Any line that fails to parse shows a highlighted error row — fix those before the full load.
Exploring an unfamiliar export. When you receive a NDJSON data dump you have not seen before, the viewer auto-detects the top-level keys and builds a column layout, so you immediately see the data shape without writing a script.
Debugging streaming API responses. Copy streamed JSON chunks into the viewer to inspect them as a table rather than hunting through raw text.
Spot-checking AI training data. OpenAI fine-tuning uses JSONL where each line is a {"messages": [...]} object. The viewer lets you scan many rows quickly to verify that the format and content are correct before uploading.
Tips and notes
Use the viewer to sanity-check an export before loading it into BigQuery, Elasticsearch, or a log tool — the highlighted error rows show you immediately whether every line is well-formed. Click a row to inspect deeply nested structure that does not fit in a cell. For very large pastes the table renders the first 500 matching rows to stay responsive; narrow the result with the search box to focus on the records you care about.