Convert a large CSV to JSON or NDJSON
Most online CSV-to-JSON converters choke at a few megabytes and want you to upload the data. For big files, the format choice matters as much as the tool.
Updated 2026-10-26 · 4 min read
JSON array or NDJSON?
| JSON array | NDJSON (JSON Lines) | |
|---|---|---|
| Shape | [{…},{…}] | one {…} per line |
| Streaming | Reader must parse the whole file | Line by line |
| Typical use | Small API payloads, config | BigQuery, Elasticsearch bulk, MongoDB mongoimport, log pipelines |
For anything over a few hundred MB, NDJSON is usually what the target system wants.
Types and pitfalls
- CSV has no types. Decide whether IDs with leading zeros stay strings (they should).
- Empty cells: empty string or null? Check what the importer expects.
- Duplicate or blank header names produce ambiguous keys – rename them first.
- Encoding: JSON must be UTF-8; convert legacy-encoded CSVs first.
Code options
python -c "import pandas as pd; pd.read_csv('in.csv', dtype=str).to_json('out.ndjson', orient='records', lines=True)" – simple, but loads everything into memory. DuckDB can stream: COPY (SELECT * FROM 'in.csv') TO 'out.json' (FORMAT JSON);.
No-code, offline
Open the CSV in Rowlode, optionally filter rows, remove duplicates and choose/reorder columns, then export JSON or NDJSON. You can split the output every N rows or MB if the target has an upload limit. The file never leaves your computer.
Have a big or messy CSV? Rowlode opens CSV files with millions of rows (multi-GB) in your browser, reading them from disk – filter, remove duplicates, sort, fix delimiter and encoding, and export CSV, Excel (split under the row limit), TSV, JSON or NDJSON. Nothing is uploaded. Viewing, filtering and dedupe are free; each export holds the first 10,000 rows until you buy a $12 lifetime license.
Questions and answers
Can I convert JSON back to CSV with Rowlode?
No, Rowlode reads delimited text (CSV/TSV/TXT) only.
Is there a size limit?
Reading is streamed from disk; the export is assembled by the browser, so very large outputs need that much free disk/memory. Splitting the output helps.
Sources and product names: JSON Lines specification (jsonlines.org); DuckDB COPY documentation; MongoDB mongoimport documentation. Microsoft Excel and Power Query are trademarks of Microsoft; Google Sheets is a trademark of Google. Rowlode is independent and not affiliated with them.