Convert CSV to JSON
Turn a spreadsheet export into JSON, NDJSON or plain arrays, with the delimiter and the character encoding worked out for you.
Drop your files here
.csv, .tsv, .txt · up to 300 MB
More settingsFewer settings
How to Convert to JSON
- 1
Drop your CSV file
Drag a .csv, .tsv or .txt file onto the page, or add several at once. The bytes are read and parsed inside this browser tab.
- 2
Adjust the delimiter or encoding if needed
Both are detected automatically. If the result looks wrong, pick the separator or the encoding yourself and convert again.
- 3
Convert and download the JSON
Choose objects, arrays or NDJSON, press the button and save the result.
Semicolons, tabs and the other separators
A CSV exported by a European copy of Excel is usually separated by semicolons, and a table dumped from a database is often tab-separated. Five candidates are tried (comma, semicolon, tab, pipe and colon), and the winner is the one that gives the sampled lines a consistent field count. When nothing agrees, the tool says so instead of quietly guessing wrong.
Why an article number stays a string
Smart typing turns 42 into a number and true into a boolean, then deliberately stops short twice. A value with a leading zero such as 00123 keeps the zero and stays text, and so does any integer longer than fifteen digits, because a twenty-digit tax ID silently loses its last digits once it becomes a JavaScript number.
Objects, arrays or NDJSON
Objects give one JSON object per row with keys taken from the header row, which is what most APIs expect. Arrays drop the keys and hand back raw rows. NDJSON writes one compact object per line with no wrapping brackets, the shape BigQuery and Elasticsearch ingest in bulk.
The file never leaves your device
Reading the bytes, sniffing the encoding, splitting the fields and building the JSON all happen in this browser tab. There is no upload step, no queue, no account and no server copy to delete afterwards. Close the tab and the data is gone from memory, so a confidential export never crosses a network boundary you did not choose.
Frequently asked questions
What is the difference between JSON and NDJSON?
Regular JSON wraps every record in one array, so a parser has to read the whole document before it can use anything. NDJSON puts one complete object on each line with no brackets or commas between them, which lets a loader stream records one at a time. BigQuery, Elasticsearch and most log pipelines expect that second form.
Why did my numbers come out as strings?
Two rules keep a value as text on purpose: a leading zero, and more than fifteen digits. Both exist because converting them would change the data: 00123 is an article number, not one hundred twenty-three, and a long identifier rounds off once it becomes a floating-point number. Anything else numeric is converted normally.
How do I keep leading zeros in postal codes and SKUs?
You do not have to do anything: values with leading zeros are left as strings by default. If you want every single field kept verbatim, including plain numbers and true or false, switch typing from smart to text and nothing at all is converted.
My file uses semicolons instead of commas. Will that work?
Yes. Semicolon is one of the five separators tested automatically, along with tab, pipe and colon, so a European Excel export usually needs no configuration. If detection fails, the delimiter selector lets you name the separator yourself, including a custom single character.
Why is the Cyrillic text in my file mangled?
It was almost certainly saved as Windows-1251, a common output from Russian accounting software. Detection checks for a byte order mark first, then validates the bytes strictly as UTF-8, and falls back to Windows-1251 or Windows-1252 based on how the high bytes are distributed. If the text still looks wrong, set the encoding by hand.
What happens when two columns have the same header?
JSON objects cannot hold two identical keys, so when the header row repeats a name, the second occurrence becomes id_2 and the third id_3. Key style is applied after that renaming, so two different headers that only match once styled, such as User ID and user_id under snake_case, end up as one key, and the column further to the right overwrites the one before it. For a file like that, leave Key style on Keep column names.
What if some rows have more fields than the header?
Those extra values are not discarded. They go into an __extra array on that record, so you can search the JSON for __extra, look at the offending rows and decide whether the source file needs fixing.
Is my file uploaded to a server?
No. The parser is plain JavaScript running in your browser tab, with no upload request behind it. Nothing is stored, logged or sent anywhere, and once the page has run one conversion, it keeps working with the network disconnected.
Guides
- CSV to Excel and Back Without Breaking Your DataA CSV file that goes into Excel and comes back out again can end up subtly different from the one you started with, in ways that are easy to miss.
- Cleaning Windows-1251 and BOM Issues Out of a CSV Before You Import ItA CSV export that looks perfectly normal when opened in a spreadsheet can still poison a JSON import with an invisible character or the wrong encoding.