Convert CSV to JSON format
Uploaded files: up to 500,000 rows (including the header row, files up to 150 MB). Pasted text: up to 70,000 rows. Conversion runs in the background — this tab stays responsive.
Click or drop a .csv file here
CSV to JSON converts a CSV file (or pasted CSV text) into an array of JSON objects entirely in your browser — nothing is uploaded to a server. The first line is treated as the header row. Parsing is quote-aware: a field wrapped in double quotes can safely contain a comma or a newline (like 'Smith, John') without being split into extra columns. Large files are read and parsed off the main thread in a Web Worker, so the page stays responsive, and the result downloads automatically as a .json file.
Does it support file upload, or only pasted text?
Both — upload a .csv file, or paste CSV text directly into the box.
Is my data uploaded to a server?
No, conversion happens entirely in your browser, in a background Web Worker so the page never freezes.
Does it support delimiters other than commas, like semicolons or tabs?
No, splitting is done on commas only — though a comma inside a properly double-quoted field is treated as data, not a delimiter.
Why is there a row limit?
Converting a very large CSV in a browser tab risks running out of memory and crashing the tab rather than just being slow. Uploaded files support up to 500,000 rows on desktop (70,000 on phones/tablets); pasted text is capped lower, at 70,000 rows, since pasted text has to live in the page itself rather than being streamed in like a file. The count includes the header row.
Why is the pasted-text limit lower than the file-upload limit?
A pasted CSV sits in the page's own memory and gets re-rendered into the input box on every change, on both desktop and mobile — an uploaded file is instead streamed straight into the background worker without that overhead, so it can safely handle far more rows.