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