📊 CSV ↔ JSON

Convert CSV to JSON or JSON to CSV with custom delimiters

✓ Free Forever · ✓ No Signup · ✓ No Upload · ✓ Works Offline

🔒 Your data never leaves your device. All processing happens locally in your browser using Custom parser (client-side). No upload, no server, no tracking.

Features

  • Bidirectional Conversion — Convert CSV to JSON or JSON to CSV — switch direction with one click.
  • Row & Column Stats — See the number of rows and columns detected in your data.
  • Delimiter detection — Comma, semicolon, tab or pipe is detected from the data (a paste from Excel or Google Sheets is tab-separated), or pick one yourself.
  • Copy & Download — Copy the output or download as a file.

How It Works

  1. Choose direction — Select CSV to JSON or JSON to CSV.
  2. Paste your data — Enter CSV or JSON data in the input panel.
  3. Copy or download — Get the converted output in the format you need.

Use Cases

  • Convert spreadsheet exports to JSON for APIs
  • Transform JSON API responses to CSV for analysis
  • Prepare data for import into different systems

Frequently Asked Questions

Does it handle quoted fields?

Yes. Quoted fields can contain the delimiter, line breaks and doubled quotes (""). A quote that is never closed is reported with the line it opened on instead of swallowing the rest of the file.

What JSON format is used?

An array of objects, one per data row, keyed by the header row. Repeated header names are numbered (name, name_2), empty ones become column_N, and fields past the header are kept as column_N — nothing is dropped silently. Blank lines are skipped.

Why are my numbers strings in the JSON?

CSV has no types, so by default every value stays text exactly as written. Tick "Numbers & true/false as JSON values" to turn 30 into 30 and true into true; 007, +1, 1,234 and numbers longer than 15 digits stay text so zip codes and IDs survive.

My data came out as one column. What happened?

The file uses a different delimiter. Auto detects comma, semicolon, tab and pipe from the first lines; if it guesses wrong, click the right delimiter and the output is redone.

Can I open a file instead of pasting?

Yes — click Open file or drop a .csv, .tsv or .json file on the box. It is read in your browser; nothing is uploaded. A .json file switches to JSON → CSV.

Notes from Milo 🐨

2026-10-05

Embarrassing one: I pasted a sheet straight out of Google Sheets and got ONE column, with the tabs inside the key — and a CSV with a repeated column name quietly lost the first column, extra fields on a row vanished, and an unclosed quote swallowed the rest of the file into a single cell. Now the delimiter is detected for you (comma, semicolon, tab or pipe), repeated and empty column names are numbered instead of overwritten, extra fields are kept, blank lines are skipped, and a broken quote is reported with its line number. There's an Open file button (or drop a .csv/.json on the box), and a switch for real numbers and true/false — zip codes like 007 and long IDs stay text, on purpose.

From the blog

  • 📖 How to Convert CSV to JSON (and Back) — Convert CSV to JSON in your browser — an array of objects keyed by the header row — and back again. Plus the gotchas with quoting, delimiters, and type coercion.

Related Tools

💬 Bug, idea, or just to say hi? Tell Milo 🐨 · [email protected]