Logs and datasets often use .jsonl or .ndjson files where each line is an independent JSON value. A text editor can open them, but finding one malformed line or an inconsistent type becomes difficult in large files.

Browser Kitty's JSONL Viewer scans JSONL / NDJSON line by line in the browser and reports malformed JSON, blank lines, top-level field presence, observed JSON types, and record contents.

JSONL / NDJSON stores one JSON value per line

A normal JSON array is one JSON value for the whole file, while JSONL / NDJSON uses one independent JSON value per line. Two valid JSON lines may therefore fail when a conventional parser tries to treat the entire file as one JSON document.

JSONL Viewer reads .jsonl, .ndjson, .jsonl.txt, and .ndjson.txt line by line and separates valid rows from review-needed rows.

  • One line equals one JSON record
  • Inspect JSONL and NDJSON in the same viewer
  • Parsing differs from a normal JSON array

Find malformed JSON and blank lines first

Large JSONL files can contain only one broken record among hundreds of thousands of lines. After scanning, JSONL Viewer reports total lines, valid lines, and review-needed lines, including malformed JSON and blank lines.

Valid records remain available even when some lines are problematic, so a single bad line does not prevent inspection of the rest of the file.

  • Check total and review-needed line counts first
  • Jump to malformed JSON lines
  • Confirm whether blank lines are intentional

Use field presence rates to spot missing fields

Not every JSONL record has to contain the same top-level fields. JSONL Viewer summarizes detected top-level fields and their presence rates, which helps reveal fields that are missing from part of the dataset.

A missing field is different from a field whose value is null. Review field presence and observed types separately.

Check for mixed types in the same field

Even when every line is valid JSON, downstream processing can fail if a field changes type. For example, price may normally be a number such as 1200 while one record contains the string "unknown".

JSONL Viewer reports observed JSON types for top-level fields. When number / string / null or boolean / string are mixed, verify whether that is intentional.

  • Mixed number and string values
  • Whether null is an intentional missing value
  • Distinguish true from the string "true"

Switch between Table, Record, and Cell Inspector views

Table view is useful for comparing multiple records side by side, while Record view is better for reading nested objects and arrays one record at a time. Use Cell Inspector for long values that do not fit in a table cell.

Instead of reading every line from the start, review overall issue counts, fields, and types first, then drill into individual records.

Large files are scanned without retaining every parsed record

The full-file scan runs in a Blob Worker created from code embedded in the single HTML. Rather than retaining every parsed record after the first pass, the viewer stores sparse checkpoints and rereads the requested range when you change pages.

This avoids rendering an enormous table from the start, but practical file size still depends on device memory, browser behavior, and storage speed.

Export the current page as JSONL or CSV

Valid records from the current page can be copied as JSONL, and the current page can also be copied or saved as CSV for spreadsheet review.

This does not repair the original file or batch-convert the entire dataset. Nested JSON also does not map perfectly to a flat CSV table.

  • Copy valid current-page records as JSONL
  • Copy or save the current page as CSV
  • Not whole-file conversion or source-file repair

Know the limits and what stays local

v1.0.0 does not support .jsonl.gz / .ndjson.gz, source-file editing or repair, JSON Schema validation, JSONPath, or jq-style queries. Sorting applies only to the current page, and field statistics focus on top-level fields.

Selected files are read with browser file APIs and the scan runs in a local Blob Worker. The generated HTML includes connect-src 'none' and does not require analytics, telemetry, an external API, or a runtime CDN. The hosted version still makes the initial request that loads the app HTML.

Step by step

  1. Add one or more .jsonl, .ndjson, .jsonl.txt, or .ndjson.txt files to JSONL Viewer.
  2. After the scan, check total, valid, and review-needed line counts to understand the scale of the problem.
  3. If issues exist, open an issue entry to jump to the affected page and inspect malformed JSON or blank lines.
  4. Review detected top-level fields and presence rates to find unexpectedly missing fields.
  5. Check observed JSON types for each field and decide whether mixtures such as number / string / null are intentional.
  6. Use Table view to compare records, Record view for nested data, and Cell Inspector for long values.
  7. Move through pages as needed and use current-page sorting to make values easier to review.
  8. Copy valid current-page records as JSONL, or copy/save the current page as CSV.
  9. If the source needs fixing, edit the producing workflow or source data elsewhere, then reopen the corrected file for verification.
Try it in Browser Kitty

JSONL Viewer

Scan JSONL / NDJSON locally and inspect invalid lines, field presence, mixed types, and records.

Open toolView tool details

Tips and limitations

  • One malformed line does not mean the rest of a JSONL file is invalid; inspect issues line by line.
  • A missing field and a field whose value is null are different, so review presence and type separately.
  • Watch for values that look similar but use different JSON types, such as numbers versus strings or booleans versus quoted strings.
  • Large-file handling depends on device resources; closing other heavy tabs can sometimes improve stability.
  • The viewer does not auto-repair data. Understand the issue first and fix the source workflow or data deliberately.

Frequently asked questions

Can I open JSONL in a normal text editor?

Yes. JSONL is text, but a dedicated viewer is more practical for large files when you need malformed-line detection, field presence, and mixed-type analysis.

Can I open both JSONL and NDJSON?

Yes. The viewer supports .jsonl, .ndjson, .jsonl.txt, and .ndjson.txt.

Does one malformed line prevent viewing the whole file?

No. Malformed JSON and blank lines are separated as review-needed issues while valid records remain available.

Can I check for mixed JSON types?

Yes. The viewer reports observed JSON types for top-level fields, so mixtures such as number / string / null can be identified.

Can I convert JSONL to CSV?

You can copy or save the current page as CSV. This is not a whole-file batch conversion feature.

Can I open .jsonl.gz or .ndjson.gz files?

Not in v1.0.0. Decompress the gzip file first, then open the resulting .jsonl or .ndjson file.

Can the viewer automatically repair malformed JSON?

No. It can identify problematic lines but does not edit or repair the source JSONL / NDJSON file.

Does it support JSON Schema, JSONPath, or jq-style queries?

No. JSON Schema validation, JSONPath, and jq-style queries are outside v1.0.0. The viewer focuses on syntax issues, top-level fields, observed types, and record inspection.

Are JSONL files uploaded to a Browser Kitty server?

No. Selected files are read through browser file APIs and scanned in a local Blob Worker rather than uploaded to a Browser Kitty backend for analysis.