CSV to JSON
Drop a CSV and get JSON with real types — numbers as numbers, blanks as null, booleans as booleans. Columns whose leading zeros matter stay strings, because a zip code that becomes 1234 is a bug, not a conversion.
Output appears here as you type.
Runs entirely in your browser. Nothing you paste here is uploaded or stored.
Questions
Is my file uploaded anywhere?
No. Parsing happens in your browser as a pure function, and the page is served with a Content-Security-Policy of connect-src ‘none’, so the browser refuses to let it open a network connection at all. That is what makes it safe to drop a real export — the kind with customer names and email addresses in it.
My file has commas inside quoted fields. Will it break?
No. The parser handles quoted delimiters, newlines inside quoted fields, doubled quotes, a UTF-8 BOM, semicolon and tab delimiters, and lone-CR line endings from old Mac exports. It also reports rows whose field count does not match the header instead of quietly dropping them.
Why is my zip code column a string rather than a number?
Because a leading zero carries meaning. 01234 parsed as a number becomes 1234, and the zip code is gone. Any value with a leading zero stays a string, as do integers beyond the range JavaScript can represent exactly — which is where snowflake ids and long account numbers live.
Can I keep every value as a string?
Yes — turn off type detection and every cell comes back quoted. That is the right choice when something downstream re-parses the values itself and you want the original text preserved exactly.