Convert JSON Lines (JSONL, NDJSON) into a CSV file that opens in Excel, Google Sheets or any database. Nested objects become columns such as user.name, arrays are joined or split, and large files are streamed line by line so the page stays responsive.
Last updated:
Files are read and converted in your browser. Nothing is uploaded.
Reading…
Columns
Preview
Advertisement
Advertisement
How to use the JSONL to CSV Converter
Paste JSON Lines or open a file (.jsonl, .ndjson). Files over 4 MB are streamed automatically.
Choose how nested data is flattened: the key separator for objects and what to do with arrays.
Pick the columns you want to keep and, if needed, sort them alphabetically.
Set the CSV format: delimiter, line endings, quoting and a BOM if the file is for Excel.
Download or copy the CSV, and check the list of skipped lines if any were invalid.
How a JSON line becomes a CSV row
Take this record: {"id":7,"user":{"name":"Ada","city":"London"},"tags":["math","code"],"active":true,"score":null}
Values are written as plain text: true/false stay as words, numbers keep their JSON form, and null becomes an empty cell. A field is wrapped in double quotes only when it contains the delimiter, a quote, a line break or leading/trailing spaces, as RFC 4180 describes; tick Quote every field if your importer insists on quotes everywhere.
Tips for clean exports
Too many columns? Arrays split per item and deeply nested logs can create hundreds of columns. Switch arrays to Join or Keep as JSON text, then untick the columns you do not need.
Opening in Excel: use the comma delimiter with a BOM, or semicolons if your Excel uses a comma as the decimal separator.
Invalid lines: the most common causes are a comma at the end of the line (copied from a JSON array) and a record pretty-printed over several lines. Fix or convert those with the JSONL to JSON Converter.
Going the other way: spreadsheet data pasted as tab-separated text converts to JSON with the TSV to JSON Converter.
Frequently asked questions
How do I convert a JSONL file to CSV?
Open the .jsonl or .ndjson file or paste its lines. Each line is parsed as one JSON object and becomes one CSV row; every key found in any record becomes a column. Click Download .csv to save the result.
How are nested objects handled?
Nested objects are flattened into separate columns whose names join the keys with the separator you choose. For example {"user": {"name": "Ada"}} becomes a column named user.name. Choose Don't flatten to keep each nested object as JSON text in a single column instead.
What happens to arrays?
By default an array of simple values such as ["math", "logic"] is joined into one cell as math; logic. You can instead keep arrays as JSON text, or split them into one column per item (tags.0, tags.1, …). Arrays that contain objects are kept as JSON text when joining.
What if records have different keys?
The converter collects the columns from all records, in the order they first appear. A record that lacks a key simply gets an empty cell in that column, so every row lines up under the right header.
Can it handle very large JSONL files?
Yes. Files over 4 MB are read as a stream, a chunk at a time, with progress shown and a Cancel button. The rows and the finished CSV are held in memory, so files of a few hundred megabytes work on a typical computer.
Why do accented characters look wrong in Excel?
Older Excel versions assume a legacy encoding when they open a CSV file. Tick UTF-8 BOM for Excel before downloading: the file then starts with a byte order mark and Excel reads it as UTF-8.
Is my data uploaded?
No. The file is read and converted entirely in your browser with JavaScript, and nothing is sent to a server.
Are all the tools on FreeToolCabin tested for quality and accuracy?
Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.