QuickieTool

CSV to JSON Converter

Turn a CSV or spreadsheet export into JSON, with quoted fields and embedded commas handled correctly. Runs in your browser — nothing is uploaded.

About CSV to JSON

CSV to JSON turns a spreadsheet export into a JSON array, using the header row for property names. The parser handles the awkward parts of real CSV properly — quoted fields, commas inside values, line breaks inside a cell and escaped quotes.

Nearly every quick CSV parser splits each line on commas, and nearly every real CSV breaks it. A name written as "Khan, Zaheer" contains a comma inside a quoted field; an address field can contain a line break; and a quotation mark inside a value is written by doubling it. Splitting naively turns one row into several columns, shifts every subsequent value into the wrong property, and corrupts the data invisibly — the output still looks like JSON, it is simply wrong.

Type detection is offered as a choice because guessing is not always welcome. Converting "42" to a number is usually helpful, but a leading-zero value such as an account number 007 or a postcode must stay a string or it silently loses its zeros, and a value like 1,000 is formatted text rather than a number. This converter only casts unambiguous plain integers and decimals, along with true, false and null, and leaves everything else exactly as written.

Where the header row is concerned, duplicate column names are reported rather than silently merged. Two columns called 'name' cannot both become the same JSON property, and quietly keeping the last one is the kind of data loss nobody notices until much later.

How to convert CSV to JSON

  1. Paste your CSV, or copy a range straight out of a spreadsheet.
  2. Leave 'First row is a header' ticked if row one holds column names.
  3. Decide whether numbers and booleans should be detected or kept as strings.
  4. Click Convert to JSON.
  5. Copy the result, or download it as a .json file.

Tips & common problems

Quoted commas are handled

A value such as "Khan, Zaheer" stays a single field. This is the case naive comma-splitting breaks, and the most common cause of a shifted, corrupted conversion.

Turn off type detection for IDs and postcodes

Account numbers with leading zeros, phone numbers and postcodes must stay strings. Casting them to numbers strips the zeros and cannot be undone from the output.

Rename duplicate headers first

Two columns with the same name cannot both become the same JSON property. The converter reports this rather than silently dropping one of them.

Copying from a spreadsheet gives you tabs

A range copied out of Excel or Sheets is tab-separated, not comma-separated. Use the sheet's own 'Save as CSV' export, or replace the tabs with commas first.

Frequently asked questions

Does it handle commas inside quoted values?

Yes. The parser follows the usual CSV rules: quoted fields may contain commas and line breaks, and a literal quote inside one is written as two quotes.

Is my data uploaded?

No. Parsing and conversion happen entirely in your browser, which matters because spreadsheet exports routinely contain customer and financial data.

What does 'detect numbers and booleans' do?

It converts unambiguous values — plain integers and decimals, plus true, false and null — to their JSON types. Anything else, including values with leading zeros or thousands separators, stays a string.

What if my CSV has no header row?

Untick the header option and each row is converted to an array of values instead of an object, preserving column order.

Why does it say a quote is unclosed?

A quoted field was opened but never closed, so the parser cannot tell where the value ends. It is usually a missing closing quote or a stray quotation mark inside an unquoted field.

Can it handle a large file?

Large exports convert fine, though very large ones depend on your device's memory since everything is processed locally.

Related tools