How to Convert JSON to JSONL
A JSON array is convenient to write, but many data tools want JSON Lines instead — one record per line, so they can stream and process records without loading the whole file. This converter makes the switch instantly. Paste a JSON array and each element is emitted as a single, compact JSON object on its own line. If you paste a wrapper object like { data: [...] }, the converter finds the array inside for you. Loose scalar values can optionally be wrapped as { value: ... } so every line is a consistent object. Your JSON is validated first, so mistakes are reported clearly. Copy or download. Everything runs in your browser, so nothing is uploaded.
Paste your JSON
Paste an array or wrapper object, or load the sample; it's parsed locally with nothing uploaded.
Set the option
Optionally wrap loose scalar values so every line is a consistent object.
Copy or download
Grab the JSONL with one tap or save it as a .jsonl file.
JSON vs JSONL — What's the Difference?
JSON array
A single document that wraps every record in one set of brackets, separated by commas. It's easy to read as a whole, but a parser must load the entire array into memory before it can use any element.
JSONL — JSON Lines / NDJSON
A format where every line is a complete, independent JSON object. Tools can read one record at a time, append new records easily, and recover from a single bad line — which is why logs and big-data pipelines prefer it.
Common Use Cases
Bulk import to databases
Load records into Elasticsearch, MongoDB or BigQuery, which all accept JSONL.
LLM fine-tuning
Most training pipelines expect one JSON example per line — exactly what this produces.
Data pipelines
Feed line-delimited JSON into stream processors and ETL jobs.
Append-friendly logs
Write new records by appending a line, with no need to rewrite a whole array.
API bulk endpoints
Produce NDJSON payloads for APIs that ingest records line by line.
Huge datasets
Process very large files one line at a time without loading everything into memory.
Sharding & splitting
Split a dataset by lines easily, since each line stands alone.
Quick reshaping
A fast, no-install way to turn a JSON array into records.
Tips & Best Practices
Start from an array
A top-level JSON array converts most predictably — each element becomes one line.
Wrapper objects are fine
If your data sits under a key like data or results, the converter finds that array for you.
Wrap scalars for consistency
If your array mixes objects and loose values, wrapping scalars keeps every line an object.
Keep records self-contained
JSONL shines when each line makes sense alone, so avoid cross-line references.
Mind the newline
JSONL doesn't need a trailing newline, but most tools accept one if present.
Troubleshooting
It says the JSON is invalid
The input must be valid JSON. Common issues are trailing commas, single quotes instead of double, or unclosed brackets.
Only one line came out
Your top level was a single object, not an array. Wrap your records in an array, or nest them under a key the converter can find.
A line isn't an object
Your array contained a loose value like a number or string. Turn on 'Wrap scalars' to make every line a consistent object.
The wrong array was used
If several arrays exist, the first one found is used. Paste just the array you want to be certain.
Frequently Asked Questions
How do I convert JSON to JSONL for free?
Paste your JSON array above and JSON Lines appear instantly, one object per line. Copy them or download a .jsonl file — free, no signup.
What is JSONL?
JSONL — also called NDJSON — is a format where each line is a complete JSON object. It's ideal for streaming, bulk imports and big-data pipelines.
Does it work with a wrapper object?
Yes. If you paste something like { data: [...] }, the converter finds the array inside and converts its elements.
What happens to nested objects inside an element?
They're preserved. Each array element is serialized in full, keeping all of its nested structure on one line.
How is JSONL different from a JSON array?
A JSON array wraps everything in brackets and commas; JSONL puts one standalone object per line, which streams and appends far more easily.
What if my array has loose values?
Turn on 'Wrap scalars' and each loose value becomes a { value: ... } object so every line is a consistent object.
Is the output minified?
Yes. Each line is compact JSON with no extra whitespace, which is the standard for JSONL.
Does it validate my JSON?
Yes. Invalid JSON is caught and reported with a clear message so you can fix it quickly.
Is there a size limit?
It comfortably converts arrays with many thousands of elements, all within your browser.
Is my data sent to a server?
No. Everything happens inside your browser, so your data never leaves your device.
Can I download the result?
Yes. Save the output as a .jsonl file, or copy it straight to your clipboard.
Can I convert JSONL back to JSON?
Yes — use our JSONL to JSON converter to wrap the lines back into a single array.
Does it preserve Unicode?
Yes. Any Unicode characters in your data are preserved in the JSONL output.
Does it work on phones?
Yes, in any modern browser on Windows, Mac, Android or iPhone with nothing to install.
Is this converter really free?
Completely free, forever — no account, no ads and no premium wall.
100% free · No signup · Processed in your browser · Data never sent
Last updated: August 2026 · FlipMyFormat JSON to JSONL Converter
Written and maintained by the FlipMyFormat team · Runs entirely in your browser