JSON Lines converter
Convert JSONL and NDJSON files while preserving row boundaries, nested values, types, and streaming-friendly records.
.jsonl · .ndjson
Format
About JSON Lines
JSONL, also called JSON Lines or NDJSON, stores one complete JSON value on each line. Most real files use one object per row, which makes the format practical for logs, event streams, model training datasets, warehouse exports, and append-only data captures. Unlike a JSON array, a JSONL file can be processed line by line without reading the entire file into memory. That is why it appears in streaming systems and large data jobs. The format is still plain text, so encoding, line endings, and malformed lines matter. Our tabular conversions treat each line as a record and then write CSV, TSV, XLSX, ODS, Parquet, SQL, YAML, XML, HTML, Markdown, TXT, or JSON when the pair is enabled.
There is no formal version number that every writer advertises. NDJSON describes UTF-8 JSON texts separated by newlines, while many tools simply say JSONL and follow the same habit. Comments are not part of JSON. Trailing commas are not allowed. Blank lines are often skipped by human tools but can fail stricter parsers. Every line may have a slightly different object shape, especially in event logs where new fields arrive over time. Arrays and nested objects are valid JSON values, but a flat spreadsheet or SQL table needs either stringified nested cells or expanded column names.
Readers and writers include data warehouses, search indexes, observability systems, AI dataset tooling, Node and Python scripts, command-line processors, and message archives. Producers differ on timestamp formats, null handling, field naming, and nested payloads. A webhook log may include headers, body, retries, and error details in nested objects. A machine-learning dataset may put prompt and completion fields beside arrays of labels. A warehouse export may already have scalar columns and be easy to convert. Before changing formats, decide whether each line is a durable record or just an intermediate representation for another system.
Conversion gotchas come from leaving the row-oriented world. JSONL to CSV or XLSX needs a column model; missing fields become blanks, and nested fields may become dotted names or JSON strings. JSONL to JSON can wrap lines into an array, which is easier for browsers but less streamable. JSONL to Parquet can preserve typed columns better when field shapes are stable, but mixed types in one property still force coercion. JSONL to SQL is only a starter for simple table loads. Validate by counting lines, counting output rows, checking one record with nested values, and confirming that large identifiers were not converted to numbers.
Convert to JSON Lines from…
Common JSON Lines problems
A pretty-printed JSON object was saved with a .jsonl name.
Convert real arrays with /convert/json-to-jsonl; JSONL expects one complete value per line, not multi-line indentation.
Different records contain different keys.
Use /convert/jsonl-to-xlsx for inspection first, then decide which optional columns belong in the final schema.
Nested payloads turn into long strings in spreadsheets.
Use /convert/jsonl-to-csv for shallow data, or keep /convert/jsonl-to-json when nested context must remain readable.
Analytics tooling wants columnar storage.
Use /convert/jsonl-to-parquet after confirming that timestamps and mixed-type fields have stable meanings.
A loader needs SQL rather than line-delimited JSON.
Use /convert/jsonl-to-sql as a generated import script, then review quoting and database-specific type choices.