Convert CSV to JSON
Turn a spreadsheet export into an array of objects.
About this converter
The header row becomes the keys and every line below it becomes an object, which is the shape almost everything expects to be handed.
The separator is detected rather than asked about — a European export uses semicolons and a spreadsheet paste uses tabs, and having to look before you can convert is a poor start. Quoted fields work properly too, including ones containing commas, quotes or line breaks.
Numbers and true/false are read as values rather than strings, with one deliberate exception: anything with a leading zero stays text. An identifier like 007, a postcode, a phone number — turning those into numbers destroys them silently, and silently is the problem. Long digit strings are kept as text for the same reason, since a 19-digit ID does not survive a round trip through a double.
Frequently asked questions
Why is my ID still a string?
Because it has a leading zero or is too long to be held exactly as a number. 007 as a number is 7, and a 19-digit identifier loses its last digits — both changes are invisible until something downstream breaks. Values that convert cleanly are converted; values that would be damaged are left as text.
Does it handle semicolons and tabs?
Yes, and it works out which you have by counting candidates outside quoted fields. Comma, semicolon, tab and pipe are all recognised.
What if two columns have the same name?
The second is numbered — a second "name" column becomes name_2. Silently overwriting the first is the alternative, and losing a column without being told is worse than a slightly odd key.
Does what I paste get sent anywhere?
No. The conversion runs in your browser, on your own machine — which is why the result appears as you type. Nothing is uploaded and nothing is logged. That matters for this kind of tool in particular: config files and API responses are exactly the things that carry keys, hostnames and customer data.