CSV to JSON — Convert CSV Spreadsheets to JSON in Your Browser
Convert CSV spreadsheet data to JSON. Handles delimiters, quoted fields, BOM, and type inference — all in your browser, no upload.
CSV is the closest thing to a universal data format: every spreadsheet app, every database export, and most APIs can produce it, and almost every tool can read it. JSON is the closest thing to a universal programming format: every modern language parses it natively, every web API returns it, every config schema accepts it. Converting between them is one of the most common chores in data work, and the conversion is annoying in a specific, recurring way.
The annoyance is not the format itself — the conversion is a few lines of code. The annoyance is the edge cases. The three that show up most often: a UTF-8 byte-order-mark at the start of the file (three bytes that look like garbage to a naive parser), quoted fields containing the delimiter character (commas inside a quoted string), and the European Excel habit of using semicolons as separators because commas are decimal marks. A well-behaved CSV-to-JSON tool handles all three without configuration, because they are not edge cases — they are the most common input shape in real data.
When the conversion is done, the natural next step depends on what the JSON is for. If it feeds a web app or a Node.js script, the array-of-objects output is what you want. If it is the input to a TypeScript or Go service, feed it through the JSON-to-TypeScript or JSON-to-Go converter to generate types that match the exact column set. If the destination is a database or an analytics pipeline, NDJSON mode is one click and saves a second tool later.
How to use
Paste or drop your CSV
Drop a .csv file or paste tabular text into the input. The tool auto-detects the delimiter (comma, semicolon, tab) and the presence of a UTF-8 BOM.
Pick an output mode
Choose between array-of-objects (the most common JSON shape), array-of-arrays (smaller, no header dependency), or NDJSON (one object per line, for streaming pipelines).
Copy or download the result
Copy the JSON to your clipboard, or download it as a .json file. There's no size limit beyond your browser's memory.
Frequently asked
Does this preserve column order?
Yes. JSON objects don't guarantee key order, but we emit keys in the order they appear in the CSV header, so diffing two outputs stays readable in code review.
What happens to the first row?
By default the first row is treated as the header. If your file has no header, switch to array-of-arrays mode in the output options to skip header interpretation.
Can it convert a file larger than 100 MB?
In practice yes, but the UI may stall while parsing. The conversion itself is in-memory and never round-trips to a server, so the only cap is your browser tab's available memory.
Does it handle semicolon-delimited CSVs from European Excel?
Yes — the delimiter auto-detect inspects the first few kilobytes and chooses between comma, semicolon, tab, and pipe. You can also force a delimiter in the settings.
Limitations
- Not for binary CSVWe treat CSV as text. Excel files saved as .csv from a sheet with formulas may export only the cached values, and pivot tables export flattened — neither is recoverable here.
- No spreadsheet formula evaluationFormula evaluation, pivot tables, and macro output are not supported. Use a spreadsheet app for those, then re-export to CSV with formulas resolved.
- Single delimiter per fileMixed-delimiter CSVs (rare, but they exist in legacy data exports) are not detected. Pre-clean with a text editor or a one-line Python script before conversion.
Platform notes
- macOS
- On macOS, Numbers and Excel both export UTF-8 CSVs by default. Older Excel for Mac may still emit MacRoman — re-save as UTF-8 if you see mojibake like é instead of é.
- Windows
- Excel for Windows still defaults to ANSI or UTF-16 in some locales. Use 'CSV UTF-8 (Comma delimited)' from the export dropdown, never 'CSV (Comma delimited)', to avoid encoding issues.
- Linux
- Most Linux tools (cut, awk, miller) write UTF-8 by default. If you pipe from a Windows-originated file, run `iconv -f cp1252 -t utf8 input.csv > output.csv` first.
- Web
- Runs entirely in the browser. Works offline once the page has loaded. Useful for ad-hoc conversions in restricted environments where the network is monitored.