Convert CSV to JSON

The everyday conversion: a spreadsheet export needs to become something a program can read. This converter handles the parts that trip up naive implementations — quoted commas, embedded newlines, inconsistent row widths — and gives you properly typed JSON.

  • Runs in your browser
  • No signup
  • No upload
  • Free

CSVJSON

Runs on your device
Options

Reading CSV

Writing JSON

Work with Parquet as well?See ParquetReader with ParquetReader — opens Parquet files directly.
What happens

How this converter handles CSV to JSON

  1. Parses the file to RFC 4180 rules, so quoted fields containing commas, quotes and line breaks come through intact.
  2. Detects the delimiter automatically, covering comma, semicolon, tab and pipe exports.
  3. Converts values to real types: 42 becomes a number, true becomes a boolean, and an empty field becomes null.
  4. Can rebuild nesting from dotted headers, turning a user.name column into {"user":{"name":...}}.
Format differences

CSV vs JSON

Plain text rows that open anywhere, with no types and no schema. Nested, self-describing records that every language can read.

CSVJSON
Type informationNone — every value is textStrings, numbers, booleans, null
StructureFlat rows and columnsNested objects and arrays
CompressionNoneNone
Typical file sizeBaseline (100%)Largest — keys repeat on every record
SchemaHeader row at bestImplicit, per record
Human-readableYes, in any text editorYes, though verbose
Tool supportUniversalEvery language, natively
Worth knowing

What to watch out for

Leading zeros are kept as text on purpose

A postcode of 01234 stays the string "01234" rather than becoming the number 1234. This is the single most common way CSV to JSON conversions corrupt data, so the rule here is deliberate and not configurable per column.

Duplicate headers get renamed

JSON objects cannot have two keys with the same name. A second column called id becomes id_2, and the conversion warns you rather than silently dropping one of them.

Semicolon files come from European Excel

Excel writes semicolon-delimited CSVs in locales where the comma is the decimal separator. Detection handles this, but if the numbers look wrong, check whether decimals are written as 1,5 rather than 1.5.

When you need this

Common reasons to convert CSV to JSON

Seeding an application or a test fixture

Product and content teams maintain data in a spreadsheet; developers need it as JSON. This is the bridge.

Posting spreadsheet data to an API

Most APIs accept a JSON array of objects, and almost none accept CSV.

Loading into JavaScript or Python

JSON parses natively in both, with no CSV parsing edge cases to get wrong.

FAQ

CSV to JSON questions

Is my file uploaded?
No. The conversion runs in your browser using WebAssembly and JavaScript. The file is read from your disk into a Web Worker, converted in memory, and handed back as a download. It is never sent to a server, so there is nothing for us to store, log or leak.
Can I get nested JSON instead of flat objects?
Yes, if your headers encode the nesting. Name the columns user.name and user.email, turn on "Rebuild nested objects", and you get a nested user object in the output.
Why are my numbers strings?
Either type detection is switched off, or the values have leading zeros, a leading plus sign, or exceed the safe integer range — all of which are kept as text so the original digits survive exactly.
How do I get one JSON object per line instead of an array?
Use the CSV to JSONL converter. JSON Lines is the better choice for streaming, for log pipelines and for BigQuery imports.
Does it handle line breaks inside quoted fields?
Yes. A quoted field containing a newline is treated as one value rather than starting a new row, which is where simple split-on-newline scripts usually break.