AnyFormat

00 CSV → JSON

CSV to JSON

Paste a CSV or drop a file. Header row becomes object keys.

01CSV in
02JSON out
03Options 6

Exports from European versions of Excel use semicolons, because the comma is the decimal point there.

Off means rows come out as arrays instead of objects.

Off keeps every value as a string — safer for IDs, postcodes and phone numbers with leading zeroes.

A column named user.name becomes {"user":{"name":…}} rather than a key with a dot in it.

  • No upload The conversion runs in this tab. Your file never travels — not to us, and not to the advertising.
  • No sign-up, no email, no daily cap There is no account system to sign up to.
  • No size limit we invented Only your device's memory — about ~2 GB on a desktop browser, ~400 MB on a phone.
  • Turn your Wi-Fi off and convert anyway The conversion needs nothing but this page. Ads will not load without a connection; your file will still convert. That is the whole claim, and it takes five seconds to check.

Paste a CSV or drop the file. The first row becomes the object keys, each following row becomes an object. Your data stays in this tab, which is the point — pasting a customer export into a stranger's server is a data-handling violation at most employers.

Separator detection

The separator is detected from the file rather than assumed. Comma, semicolon, tab and pipe are all recognised, and the tool tells you which one it found when it is not a comma. Semicolons are extremely common: Excel writes them in every locale where the comma is the decimal separator, which is most of continental Europe.

If detection gets it wrong — usually because the first few rows are unrepresentative — pick the separator explicitly.

Type inference, and when to turn it off

By default 42 becomes the number 42, true becomes a boolean, and an empty cell becomes an empty string. That is what you want for measurements and flags.

It is exactly what you do not want for identifiers. A US postcode of 02134 becomes 2134; a phone number +44 20… may survive but an account number 0001234 will not; and a long numeric ID past 2^53 loses precision silently. If your CSV contains any of those, turn Detect numbers and booleans off and every value stays a string.

Quoted fields, embedded newlines and ragged rows

Fields wrapped in double quotes may contain commas, newlines and doubled quotes ("") — all handled. A row with more cells than the header keeps the extras under generated keys rather than dropping them, and a row with fewer gets empty values; either way you get a note saying which rows were affected and how many. Silent truncation is how CSV imports lose data.

A UTF-8 byte-order mark at the start of the file is stripped. Left in, it corrupts the first column name into something that looks identical but does not compare equal — a genuinely nasty bug to chase.

Rebuilding nested structure

If your CSV came from JSON it probably has dotted headers like address.city. Turn on Expand dotted headers and those become nested objects again, so a round trip through a spreadsheet does not permanently flatten your data.

Other names for this

Also searched as “csv to json array”, “convert csv to json online”, “excel csv to json”.

Questions

Why are my ID numbers losing their leading zeroes?
Type detection is turning them into numbers. Switch off “Detect numbers and booleans” and every value stays exactly as written.
My file has no header row.
Turn off “First row is a header” and each row comes out as an array of values instead of an object.
The output is one giant line — can I make it readable?
Set Indentation to 2 or 4 spaces. Minified is only useful when the JSON is going straight into a request body.
Some rows have more columns than the header.
They are kept, with the extra cells under generated keys, and the tool tells you which rows were ragged. Nothing is silently dropped.
Is my data uploaded anywhere?
No. The conversion runs as JavaScript inside this tab. Open your browser's Network panel and convert something — you will see no request carrying your data, because there is no server to send it to. You can also turn your Wi-Fi off and convert anyway.
How large a file can I convert?
There is no imposed limit — the ceiling is your device's memory. In our testing a desktop browser handles files up to about 2 GB and a phone up to about 400 MB before the tab runs out of memory. Files above a few hundred megabytes are noticeably slower because everything is held in RAM at once.