CSV to JSON Converter

Paste a spreadsheet export and get clean JSON, with types inferred if you want.

CSV input
JSON output

About this tool

Convert CSV to JSON in your browser. The delimiter is detected from your data — comma, semicolon or tab, judged by consistency across the first lines — and quoted fields are honoured exactly as RFC 4180 defines them, including embedded newlines and doubled quotes.

By default every cell stays a string, because a cell reading 007 is usually an id, not a number. Turn on infer types and unambiguous values become numbers, booleans and null; leading zeros and 19-digit integers still stay strings, deliberately.

Duplicate headers get distinct names and the notes say which; ragged rows are reported rather than silently mangled.

How to use it

  1. Paste your CSV — an Excel export, a database dump, anything comma, semicolon or tab separated.
  2. Choose whether the first row is a header, and whether to infer types from the cells.
  3. Read the notes under the output: they state the detected delimiter and anything the conversion had to decide.

Worked example

The sample becomes an array of objects with name, city and score — cells as strings, exactly what was in the file, with the notes confirming the comma delimiter.

One export, one clean array

Frequently asked questions

How does it detect the delimiter?
It counts candidate separators outside quoted fields on the first ten lines. The separator with a consistent count across lines wins — a file using semicolons reads as semicolons even if a comma appears inside a value.
Why are my numbers strings?
Because a spreadsheet cell reading 007, 1e5 or 1234567890123456789 is more often an id or code than a number, and converting it would change it. Turn on infer types for clean numeric columns; ambiguous ones still stay strings.
Does it handle multiline cells?
Yes — a quoted field may contain line breaks, exactly as RFC 4180 allows. The record only ends at an unquoted line break, so wrapped text in one cell stays one value.
What if the header has duplicates?
The second name column becomes name_2, and the notes name both — JSON objects cannot hold two identical keys, and dropping data silently is not an option here.
Is there a size limit?
No fixed one; conversion runs on your device and the limit is its memory. A million-row export is slow to scroll but converts fine.