HomeFree Tools › Free CSV ↔ JSON Converter — Private, In Your Browser (2026)

CSV ↔ JSON Converter

Free tool · by Daniel Haket

Convert CSV to JSON or JSON back to CSV with real quoting rules and automatic delimiter detection (comma, semicolon, tab) — entirely in your browser, so customer exports never leave your device.

Delimiter auto-detected (comma, semicolon or tab). Converted entirely in your browser — customer exports never leave your device.

Free vs paid — when to upgrade

What this free tool is great for: a quick, one-off job with no signup — it runs entirely in your browser, so nothing leaves your device and there's nothing to manage.

Its honest limit: it produces a one-off output — it won't store, track, brand or manage them at scale, and it can't tell you what happens after you share it.

Where Databox does more: Converting the same export weekly is the symptom; the manual pipeline is the problem. Databox connects straight to the sources people export from and keeps dashboards current automatically.
Try Databox →
Affiliate link — we may earn a commission if you sign up, at no cost to you. It never changes our honest take.

The two formats that carry business data — and why they keep meeting

CSV and JSON are the packhorses of everyday data: CSV is what spreadsheets, CRMs and bank portals export; JSON is what APIs, webhooks and modern tools speak. Marketers live in the first, developers in the second, and every integration project involves shoving data across that border. Hence this converter: paste either format, get the other, entirely in your browser — which matters because the files crossing this border are customer lists, transactions and leads, exactly the data that shouldn't detour through a stranger's server. The sections below cover the sharp edges: delimiters, Excel's sabotage, quoting rules and the honest limits of flattening nested data.

CSV is simpler than it looks — and messier than it should be

Comma-separated values sounds like a spec; in practice it's a family of dialects. Values containing commas get wrapped in quotes; quotes inside quoted values get doubled (""like this""); line breaks can legally live inside a quoted cell, which breaks every naive split-on-newline parser. This converter implements the real quoting rules — the same state machine proper libraries use — so a customer note like "called, asked to cancel" survives as one field instead of exploding into two columns. When a CSV looks mangled after import somewhere, quoting is the first suspect: one unescaped quote early in a file can shift every column after it.

The semicolon problem (a European classic)

Here's the trap that catches every Dutch, German and French team: your Excel exports "CSV" files separated by semicolons, not commas — because in locales where the decimal separator is a comma (1,50 euro), the list separator shifts to a semicolon. American tools then read the file as one giant column, and the confusion begins. This converter auto-detects comma, semicolon and tab delimiters by inspecting the first row, so both dialects just work. When you exchange files internationally, say which delimiter you used — or better, send JSON, which has no locale opinions at all.

Excel's quiet sabotage

The most common data damage doesn't come from conversion — it comes from opening a CSV in Excel before converting. Excel helpfully "interprets": leading zeros vanish from phone numbers and postcodes (0612… becomes 612…), long numbers become scientific notation (product code 8712345678901 becomes 8.71235E+12), anything date-shaped gets rewritten to the local date format, and gene names famously turned into dates so often that geneticists renamed the genes. The defence: treat CSVs as text until the last moment — convert or import with explicit column types, and if a file must pass through Excel, use its import wizard with columns set to Text rather than double-clicking the file.

Headers, types and what JSON adds

The first CSV row usually holds column names, and the headers checkbox decides the JSON shape: with headers you get an array of named objects ({"name": "Ada"…}) — what APIs and scripts want; without, a bare array of arrays. Note what conversion can't invent: CSV has no types, so everything arrives as text — "42", "true" and "2026-07-01" are strings until something downstream declares otherwise. That's not a flaw of the converter but of the format; when types matter (numbers summed, booleans filtered), make the receiving system parse them explicitly rather than trusting whatever guessed.

JSON → CSV: the flattening problem, honestly

Going the other way has a structural limit: JSON can nest (an order containing an array of items), while CSV is stubbornly flat. This converter handles the common case — an array of reasonably flat objects — perfectly, unioning all keys into columns and filling gaps with empty cells. Nested objects and arrays get serialised as JSON strings inside their cell: correct, lossless, but not spreadsheet-friendly. When an API response nests deeply, the honest workflow is choosing which level you actually want as rows (the orders? the line items?) and extracting that array first — a decision no converter can make for you, because it depends on the question you're asking the data.

Practical hygiene for data handoffs

A few habits prevent most cross-border data pain. Always include headers — a CSV without them is a puzzle for whoever receives it. Use ISO dates (2026-07-01), the only format that survives every locale and sorts correctly as text. Encode as UTF-8 and mention it — accented names turning into mojibake is an encoding mismatch, not corruption. Keep one row per record; merged cells and title rows belong in reports, not data files. And for anything that repeats — the weekly export, the monthly reconciliation — write the steps down once; data handoffs rot when they live in one person's muscle memory.

Debugging a conversion that "looks wrong"

When output surprises you, walk the usual suspects in order. Columns shifted halfway down? An unescaped quote upstream — find the row where fields start bleeding together. One giant column? Delimiter mismatch: the file says semicolons while the reader assumed commas (or vice versa). Weird  characters before euro signs? Encoding — the file is UTF-8 read as Latin-1 or the reverse. Row counts off by one? The header checkbox disagrees with the file's reality. And a JSON error at "position 0" usually means the input isn't JSON at all — someone pasted the CSV into the wrong direction. Five checks, ninety percent of mysteries; the remaining ten percent are genuinely broken files worth sending back to their producer, with the specific symptom named — which gets them fixed in one round-trip instead of three.

Hand-converting exports is the symptom — where Databox does more

If you're converting the same CSV export every week to get numbers into a report, the conversion isn't the problem — the manual pipeline is. That's where Databox does more: it connects directly to the sources people usually export from (analytics, CRM, ads platforms, spreadsheets) and keeps dashboards current automatically, no export-convert-paste loop at all. Use this converter for the genuine one-offs, the debugging and the integration work; when a conversion becomes a recurring chore, that's the signal to pipe the data instead of ferrying it.

Frequently asked questions

Why does my Excel CSV use semicolons?

In locales where the decimal separator is a comma (NL, DE, FR), Excel switches the list separator to a semicolon. This converter auto-detects comma, semicolon and tab, so both dialects just work.

Why did my leading zeros / long numbers break?

Almost certainly Excel, not the conversion: opening a CSV directly makes Excel reinterpret values (zeros stripped, scientific notation, date rewriting). Import with columns set to Text, or keep the file out of Excel.

How is nested JSON handled in CSV?

Flat objects become clean columns; nested objects/arrays are serialised as JSON strings in their cell — lossless but not spreadsheet-friendly. Extract the array level you actually want as rows first.

Is my data uploaded?

No — parsing and conversion run in your browser. That's deliberate: the files crossing this border are customer lists and transactions, exactly what shouldn't detour through a stranger's server.

More free generators & utilities

Browse all free tools →

Embed this tool on your site

Blogger, teacher or toolmaker? Put this calculator on your own page — free forever, no strings. Copy the snippet below (the credit link is appreciated and keeps the tool free):

This tool is free and runs entirely in your browser. The link above is an affiliate link: we may earn a commission if you sign up, at no extra cost to you, and it never changes our honest take.