Private JSON Lines inspection

JSONL / NDJSON Validator & Repairer

Inspect each physical line independently, catch invalid UTF-8 and duplicate object keys, compare record shapes and field types, preview conservative repairs, and export reviewed data without uploading it.

1. Source data

Paste UTF-16 browser text or stream a UTF-8 file up to 20 MB.

No data loaded.Files are decoded as strict UTF-8; pasted text has already been decoded by the browser.

Files and pasted records stay in this browser tab. ToolQuill does not upload, store, or remember the data.

What valid JSONL or NDJSON means

Each nonblank physical line must be one complete JSON value. The entire file is not wrapped in an array, and a pretty-printed object cannot span several lines. This tool accepts any JSON value per line but calls out non-object values because object records are normally required for schema comparison and CSV conversion.

File input is read in chunks and decoded as strict UTF-8. A malformed byte sequence stops inspection with its zero-based byte offset. Pasted textarea content is already a JavaScript string, so its original bytes and encoding cannot be recovered or validated.

Duplicate keys and schema drift

Standard browser parsing keeps the final value when an object repeats a property name. The inspector separately walks valid JSON syntax and reports each repeated decoded key, including nested objects, with the first and repeated columns. Exports still reflect the final parsed value, so duplicate-key warnings deserve manual review.

Schema drift is not a syntax error. The workbench compares exact top-level key sets, chooses the most frequent as the dominant signature, and reports missing fields and mixed value types. Arrays, scalars, and nested object structure are not treated as a full schema, and no external JSON Schema is applied.

Why repairs are deliberately narrow

A trailing comma immediately before an object or array close has one unambiguous deletion. A leading BOM character can be removed without changing the record. Most other “repairs” require guessing: replacing quotes may alter data, closing a brace may join the wrong structure, and splitting concatenated values may change record boundaries. ToolQuill previews only changes that reparse successfully and leaves ambiguous lines untouched.

Conversion boundary

A successful parse does not prove the data is semantically correct. Check identifier precision, dates, required fields, numeric ranges, nested structures, duplicate semantics, null handling, and downstream schema rules. Spreadsheet applications may also coerce long numbers or dates after CSV import; import columns with deliberate types.

Frequently asked questions

Why is a valid JSON array not valid JSONL?

A one-line array is a valid JSONL record, but it is one record—not a collection of line records. A pretty-printed array spanning many lines fails because its individual lines are not complete JSON values.

Are blank lines allowed?

Blank lines are counted separately and ignored for conversion. Some strict pipelines reject them, so the diagnostics keep their physical line numbers visible.

Can the tool find invalid UTF-8 in pasted text?

No. The browser has already decoded pasted content into Unicode. Upload the original bytes to run strict UTF-8 validation and get a byte offset.

Does CSV flatten nested objects?

No. Top-level keys become columns; nested arrays and objects remain compact JSON strings in their cells. This avoids inventing a flattening convention.

Browse text tools · Fixed-width to CSV parser · Encoding repair lab · All ToolQuill tools