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
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
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
"") — 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
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.