How to Use This Tool
Paste CSV, get JSON. Type inference is on by default and deliberately conservative — the decisions panel lists everything it changed and everything it refused to.
What gets converted
- Numbers —
42,-3.5,91.5. Only when the value is a plain number with no leading zero and short enough to hold exactly. - Booleans —
trueandfalse, case-insensitively. Note thatyes,Yand1are not converted, because in a lot of data those mean something other than boolean true. - Empty cells — left as empty strings by default rather than
null, since CSV genuinely cannot distinguish "empty" from "missing".
What is deliberately left alone
Leading zeros. 007, 0420, 01234 are almost
always identifiers — postcodes, product codes, phone numbers, account numbers. Converting them to
numbers strips the zeros and the value cannot be recovered, because nothing records how many there
were. This is the single most common way a spreadsheet destroys a dataset.
Long digit strings. A JavaScript number holds integers exactly only up to about
9,007,199,254,740,991. Beyond that, digits are lost silently: convert
9007199254740993 and you get ...992 back. Since IDs from Twitter, Discord,
Snowflake schemes and many databases are 18 or 19 digits, any converter that eagerly parses them
corrupts your keys. They stay strings here.
Dates. 03/04/2026 is 3 April to most of the world and 4 March in the
United States, and there is nothing in the file to say which. Guessing gives you data that is wrong
about half the time and looks entirely normal. Dates are left as written; if you need them typed,
convert with knowledge of the source, which the file does not contain.
Parsing, not splitting on commas
A CSV field can contain the delimiter, quotes and newlines as long as it is quoted, so splitting each line on commas breaks on real files. This uses a character-by-character parser that tracks whether it is inside quotes, handles doubled quotes as a literal quote, and accepts newlines inside quoted fields.
The delimiter detector counts commas, semicolons and tabs outside quotes on the first few lines and picks the most consistent one. European exports frequently use semicolons, because the comma is the decimal mark there.
If types matter, CSV was the wrong format
None of this is a criticism of the tool that produced your file. CSV has no type system at all, so every reader has to guess, and different readers guess differently. If you control both ends, JSON Lines or Parquet carry types explicitly and remove the entire class of problem. Where you do not, a conservative converter that tells you what it did is the next best thing.
