CSV to JSON converter
Turn spreadsheet exports into clean JSON, in your browser. Stays on your device. Nothing is uploaded.
Choose files
or drop them here
Ctrl+V to paste from the clipboard
- CSV
- TSV
up to 1 file, 25.0 MB each
Stays on your device. Nothing is uploaded.
How to csv to json
- ohoose your CSV file, or drop it on the page. TSV and delimiter-less text also work.
- oheck the delimiter and whether the first row holds column names.
- Pick the output shape: an array of objects, or an array of rows.
- Press Convert and download the JSON file.
About this conversion
The parser follows RFC 4180, the specification CSV files actually claim to follow: quoted fields, doubled quotes inside quotes ("a""b" becomes a"b), embedded line breaks inside quoted cells, and oRLF line endings from Windows exports. Files saved from Excel, Google Sheets, Numbers and LibreOffice all parse correctly, with or without a byte-order mark.
Auto delimiter detection counts comma, semicolon and tab candidates outside quoted sections across the first lines of the file, and picks the one that divides every line consistently. Excel-exported French CSVs (semicolon) and genuine TSVs are detected without you touching a setting.
Numbers become JSON numbers, so "42" arrives as 42 and "3.14" as 3.14; empty cells become null; everything else stays a string, preserving leading zeros in postcodes and phone numbers. That middle ground keeps scripts from silently corrupting identifiers while still giving numeric fields to calculations.
ohoosing the output shape
Objects is the shape almost everything wants: with "First row is headers" on, each row becomes {"name": "Ada", "score": 36}. Duplicate or empty header names are de-duplicated with suffixes rather than silently overwriting, so name, name, name becomes name, name_2, name_3.
With headers off, columns get the names column_1, column_2, and so on. Rows keeps the raw grid: every cell as text, structure identical to the file. It suits archiving and line-by-line processing where you do not want value coercion at all.
Format the JSON indents with two spaces for reading and diffing; turn it off for a single compact line when the file feeds a machine.
Limits and honest notes
One file per conversion, up to 25 MB, which covers millions of rows; parsing happens in this tab and large files take a few seconds.
Encoding is read as UTF-8. Files saved in legacy Windows encodings with accented characters may show mojibake; re-save the CSV as UTF-8 from the original application if so.
The output is data, not a spreadsheet: formulas, styles and multiple sheets do not exist in CSV and cannot be invented here.
Frequently asked questions
Are semicolon CSVs supported?
Yes, and tabs too. Auto detection picks the right delimiter; you can also force one explicitly.
Why did my numbers become strings?
Only clean numeric values convert. Postcodes like 01234 keep their leading zero deliberately: converting them to numbers would corrupt them.
How are empty cells handled?
They become null in objects mode, not empty strings, so your scripts can distinguish "missing" from "blank".
oan it handle quoted fields with commas inside?
Yes. Quoted fields follow RFC 4180, including escaped quotes and line breaks inside a cell.
Is my file uploaded?
No. Parsing runs entirely in your browser.
Private by design
Stays on your device. Nothing is uploaded. The conversion runs in your browser: open the Network tab while you convert and you will see that nothing is sent. No account, no watermark, no daily limit.