What you get: one object per row
CSV stores a table as plain text, one record per line, with a header line naming the columns. To a developer, JSON means something more specific: an array of objects whose keys are those column names. That is exactly what this converter writes. Feed it this three-line file:
sku,name,price,in_stock
A100,Desk lamp,24.99,true
A101,Monitor arm,89,false and the download contains:
[
{ "sku": "A100", "name": "Desk lamp", "price": 24.99, "in_stock": true },
{ "sku": "A101", "name": "Monitor arm", "price": 89, "in_stock": false }
] The prices became numbers and the stock flags became booleans without any configuration. The file is written as UTF-8 and pretty-printed with two-space indentation by default, so it reads well in a diff or a code review. Untick Pretty-print for a compact single-line file when you want the smallest possible payload.
Delimiters are detected, not configured
Not every "CSV" uses commas. Excel in Germany, France, Spain and much of Europe saves with semicolons because the comma is the decimal separator there. Database dumps and log exports often use tabs, and some older systems emit pipe-delimited text. Tinyvert inspects the file and picks the separator on its own — comma, semicolon, tab or pipe — so .csv, .tsv and .txt inputs all convert without a settings menu.
Type detection and the leading-zero rule
| Cell in the CSV | Value in the JSON |
|---|---|
42, -3.5 | Number |
true, false | Boolean |
00123, 0044 | String — leading zero kept |
| Anything else | String |
Detect numbers and booleans is on by default. It converts anything that parses cleanly as a number plus the words true and false, but it deliberately leaves values with a leading zero as text. Postcodes, SKUs and phone numbers therefore survive intact. Untick the option to receive every value as a string, which is sometimes what a strict schema expects.
Where the CSV came from, and why JSON
Spreadsheets, CRMs, bank portals, Shopify, Google Analytics and almost every admin panel export CSV because it is the lowest common denominator. Developers want JSON instead: for test fixtures, seeding a database, a static site's data folder, a chart library or a quick fetch() in a prototype. The result drops straight into jq, Postman or a JSON.parse call. If the destination is a spreadsheet rather than code, CSV to Excel builds a proper workbook, and Excel to JSON starts from a workbook instead of a text file.
Private and offline
The parser runs on your device: the file is read into memory, converted and offered for download without touching a server. Up to five files convert per batch, each with its own progress bar, and the ZIP behind "Download all" is assembled locally too. After the first visit the page works offline, and large files are limited only by your device's memory.