Convert CSV or TSV to JSON in your browser: detect numbers safely, nest dot headers, keep leading zeros, and export objects, arrays or JSON Lines.
Most CSV converters treat every number-looking value as a number, and that quietly breaks real data: a ZIP code of 01234 loses its zero, and a 17-digit order ID comes back rounded. This one only converts a value when nothing can be lost, and tells you about anything odd in the file.
The box starts with a small service table, whose first data row 1,checkout-api,210,0.0002,eu-west becomes an object with "id": 1 and "p99_ms": 210.
sep=; line from Excel is honoured.Dot headers are the feature to look for: columns called address.city and address.zip become one nested address object, which also reverses what JSON to CSV does when it flattens nested data.
42, -3.5 and 1e3 become numbers; true, false and null become their JSON values in any case. These stay strings on purpose: 007 and +1, because the leading characters would vanish, 1,000, and anything over 15 significant digits, because JavaScript numbers cannot hold it exactly. Quoted fields may contain commas, doubled quotes and line breaks, as in RFC 4180.
Problems are listed under the output rather than hidden. A blank header becomes column_3, a repeated one becomes name_2, and a row of the wrong length is reported, such as “Row 4 has 3 values; the header has 5.” Missing cells count as empty, and extra cells get their own column. If a and a.b are both columns, they cannot both exist in one object, so a.b stays a flat key. Files over 25 MB are refused because a browser tab may run out of memory. Pasted text is kept in this browser; opened files are not saved or uploaded.
JSON shape
Delimiter
Empty cells