NDJSON Viewer Online — Newline-Delimited JSON Browser

Paste an NDJSON / JSON Lines file and browse it as a sortable table or expandable cards. Filter live across all fields — 100% in your browser.

search
Paste NDJSON above or click Load Sample to render records.

What is an NDJSON viewer?

An NDJSON viewer takes a newline-delimited JSON file (also called JSON Lines or JSONL) and renders it as a structured browser — typically a sortable table or a list of expandable cards. It turns log streams, event exports, and dataset shards into a scannable grid you can sort, filter, and copy without writing a parser.

NDJSON is the natural format for streaming and log data: each line is a complete JSON object, so you can append, tail, and stream without ever touching the rest of the file. But once you have a few hundred lines, raw NDJSON is hopeless to read in an editor. A viewer flips that — keys become columns, values line up, and the shape of your data becomes obvious at a glance.

How to view NDJSON — 4 steps

  1. Paste NDJSON. Drop a log file, MongoDB mongoexport dump, or a BigQuery JSON export into the input. Click Load Sample for a typical structured-logging example.
  2. Read the table. Columns are auto-detected from the union of object keys; nested objects collapse to a badge so the layout stays clean.
  3. Sort and filter. Click any header to sort by that column. The filter box does a substring match across every cell.
  4. Switch to cards. When records have wildly different shapes, toggle to card view to inspect one at a time with the full JSON expanded.

Sample NDJSON

{"ts":"2026-05-06T10:01:32Z","level":"info","msg":"request","status":200,"latency_ms":12}
{"ts":"2026-05-06T10:01:33Z","level":"info","msg":"request","status":201,"latency_ms":48}
{"ts":"2026-05-06T10:01:34Z","level":"warn","msg":"slow query","status":200,"latency_ms":612}

Each line is a self-contained JSON object. The viewer lines up keys (ts, level, msg, status, latency_ms) as columns so you can sort and filter without writing a single line of code.

Sortable Columns

Click any column header to toggle ascending or descending. Numeric values sort naturally — 9 before 10 — using locale-aware comparison.

Live Filter

Type in the filter box and the table narrows in real time. The match runs across every cell, including nested values.

Card View Mode

Switch to expandable cards when records have different shapes or you need to read full nested objects record-by-record.

Common use cases

  • check_circleInspecting structured logs from Pino, Bunyan, slog, zap, or Serilog
  • check_circleBrowsing MongoDB mongoexport output before re-importing
  • check_circleReviewing BigQuery, ClickHouse, or DuckDB NDJSON exports
  • check_circleExploring ML training datasets shipped as JSON Lines (JSONL)
  • check_circleDebugging Kafka or Kinesis event streams captured to NDJSON
  • check_circleInspecting OpenTelemetry, Datadog, or New Relic log dumps
  • check_circleBrowsing Stripe webhook event archives in JSON Lines format
  • check_circleReading append-only audit logs without loading the whole file

NDJSON vs JSON arrays

A JSON array ([a, b, c]) requires the whole file to parse as a single value. That's great for finite, known-size datasets, but terrible for streaming: you can't append a record without rewriting the closing bracket, and you can't read the first record until the entire file is downloaded. NDJSON inverts those tradeoffs — each line is independent, so you can stream, tail tail -f, append concurrently, and recover from a corrupted line without losing the rest. The viewer reads each line independently, so a single bad line never breaks the rendering of the others.

Need to do more with NDJSON?

Validate every line, render to a fixed table, or pretty-print individual records.

Frequently Asked Questions

What is NDJSON?

NDJSON (Newline-Delimited JSON) is a streaming-friendly format where each line is a complete, self-contained JSON value — almost always an object. Unlike a JSON array, you can append a new line without rewriting the whole file, which makes NDJSON ideal for logs, telemetry, and append-only event streams.

How does NDJSON compare to JSON Lines and JSON arrays?

NDJSON and JSON Lines (JSONL) are essentially the same format — one JSON value per line, separated by \n. The names are interchangeable in practice. A JSON array, by contrast, requires the whole document to be valid JSON, which means you must rewrite the closing ] every time you append. NDJSON is append-friendly; JSON arrays are random-access friendly.

When should I use NDJSON?

Use NDJSON for: log files (structured logging in Pino, Bunyan, slog, zap), event streams over HTTP (SSE-style), database import/export (BigQuery, MongoDB mongoexport, ClickHouse), and ML training datasets where you read records one at a time. Use a JSON array for small, finite, complete datasets you want to load in one shot.

How does the viewer handle errors?

Each line is parsed independently. Lines that don’t parse are listed in the error count at the top, but valid lines still render normally. This matters for real-world log files, where a single corrupted entry shouldn’t hide the rest of the data.

Why a table and a card view?

Table view is best for scanning many records: every column lines up, you can sort and filter, and outliers jump out visually. Card view is best for inspecting individual records — especially when objects have nested fields or wildly different shapes that don’t fit a tabular layout.

Is there a row limit?

There is no hard limit, but rendering tens of thousands of rows in the DOM can slow the browser. For very large NDJSON files, filter or paginate before pasting, or use a streaming tool. Practical rendering tops out around 5–10k rows on most laptops.

Can I copy or export?

Yes — the table mirrors a JSON array of objects, so you can pair this tool with our JSON to Table converter for copy-as-TSV or with the JSON Formatter to pretty-print a single record. The card view shows the raw line for easy clipboard copy.

Is my NDJSON sent to a server?

No. Parsing, sorting, filtering — all runs in JavaScript inside your browser. Open DevTools → Network and confirm. Log files often contain user IDs, IPs, or proprietary event data, so privacy matters.

NDJSON Viewer Online — Newline-Delimited JSON Browser