Convert JSON to JSONL

A JSON array has to be parsed in full before you can touch the first record. JSON Lines does not. This converter unwraps the array and writes each record on its own line, which is what bulk loaders and streaming consumers want.

  • Runs in your browser
  • No signup
  • No upload
  • Free

JSONJSONL

Runs on your device
Options

Reading JSON

Writing JSONL

Work with Parquet as well?See ParquetReader with ParquetReader — opens Parquet files directly.
What happens

How this converter handles JSON to JSONL

  1. Reads the JSON document and locates the record array, unwrapping a single-array envelope if present.
  2. Writes one compact JSON object per line, in the original order.
  3. Keeps values as they were — no retyping, since JSON types are already explicit.
  4. Flattens nesting only if you ask it to; otherwise records keep their structure.
Format differences

JSON vs JSONL

Nested, self-describing records that every language can read. One JSON object per line, built for streaming and appending.

JSONJSONL
Type informationStrings, numbers, booleans, nullStrings, numbers, booleans, null
StructureNested objects and arraysOne nested object per line
CompressionNoneNone
Typical file sizeLargest — keys repeat on every recordSlightly under JSON
SchemaImplicit, per recordImplicit, per line
Human-readableYes, though verboseYes, one record at a time
Tool supportEvery language, nativelyLog pipelines, LLM training sets, BigQuery
Worth knowing

What to watch out for

Pretty-printing is dropped by necessity

Each record must occupy exactly one line, so indentation and line breaks inside records are removed. The data is unchanged; only the whitespace is.

A single object becomes a single line

If the input is one object rather than an array, the output is one line. That is valid JSONL, if a short file.

Nesting is preserved by default

Unlike conversions to tabular formats, nested objects stay nested here — JSONL can represent them natively. Flattening is opt-in.

When you need this

Common reasons to convert JSON to JSONL

Preparing a bulk import

BigQuery, Elasticsearch and many warehouse loaders take newline-delimited JSON directly.

Making a large export processable

Line-based tools can stream a JSONL file that would not fit in memory as a single array.

Building an append-friendly log

New records can be appended to a JSONL file without rewriting it. A JSON array cannot be appended to without editing the closing bracket.

FAQ

JSON to JSONL questions

Is my file uploaded?
No. The conversion runs in your browser using WebAssembly and JavaScript. The file is read from your disk into a Web Worker, converted in memory, and handed back as a download. It is never sent to a server, so there is nothing for us to store, log or leak.
Does this change my data?
No. Only the framing changes — the array wrapper and the whitespace. Values, types and record order are preserved.
Why would I prefer JSONL over JSON?
Because it streams and appends. A consumer can process record one without having read record one million, and new records can be appended without rewriting the file.
What if my JSON is an object with an array inside?
The array is detected and unwrapped automatically. For deeper structures, set a record path such as result.items.
Can I go back the other way?
Yes — the JSONL to JSON converter wraps the lines back into an array.