JSON and data guides
JSON Lines: validate one record per line
Distinguish JSONL from a JSON array, handle escaped newlines, and find a broken record without corrupting the stream.
Each line is a JSON value
JSON Lines uses UTF-8 and one valid JSON value per line. It does not wrap the records in an array or separate them with commas.
Objects are common, but other JSON values can also be records. A blank line is not a valid JSON value and needs an explicit handling policy.
{"id":1,"name":"Ada"}
{"id":2,"name":"Lin"}Escape embedded line breaks
A string’s newline must be encoded as the two-character escape sequence \n inside a single record. A literal newline would split the record.
Pretty-printing each object across multiple physical lines breaks JSONL framing. Keep records compact even when formatting JSON elsewhere.
{"note":"first\nsecond"}Identify a failing record
Validate lines individually and report the physical line number. A parser error in record 37 should not require guessing where the surrounding JSON array starts.
Decide whether processing stops or quarantines invalid records. Silently skipping a failed line can lose a payment or event without a visible error.
Streaming depends on the implementation
A JSONL producer can write records incrementally, but a particular converter may still load the whole file. Nav Tools has browser input limits.
For large exports use a server-side streaming parser. In a small conversion, verify the record count and long integer IDs before downloading.