CSV to JSON converter
Turn a CSV spreadsheet into an array of JSON objects.
Processed in your browser. This file is converted on your device and is never uploaded.
Converter
.csv up to 25 MB. You can also drag a file here.
No file selected.
About this tool
Spreadsheets export CSV, but most APIs, configuration files, and scripts want JSON. This tool reads a CSV file and writes an array of JSON objects, using the header row for the property names.
Parsing is streamed in chunks rather than loaded all at once, so a large export stays responsive instead of freezing the page while it reads.
Supported formats and limits
- Input
- .csv
- Output
- .json (application/json)
- Output name
- The original name with the new extension, for example data.csv becomes data.json.
- File size limit
- 25 MB
- Processing
- In your browser. The file is not uploaded.
CSV against JSON
| Feature | CSV | JSON |
|---|---|---|
| Stored as | Plain text, readable in any editor | Plain text, readable in any editor |
| What it can hold | Rows and columns | Values nested inside values |
| Numbers stay numbers | No | Yes |
| Comments | No | No |
| Several in one file | No | No |
| Published | 1972 | 2001 |
How to use it
- Choose a .csv file, or switch to Paste text and paste the rows directly.
- Confirm whether the first row holds column names.
- Choose whether to indent the JSON.
- Select Convert, then download the .json file.
Limitations
- Every value becomes a string. Numbers, booleans, and dates are not guessed at, because guessing silently corrupts things like postcodes, phone numbers, and version strings that only look numeric.
- Without a header row, columns are named column1, column2, and so on.
- Duplicate column names collapse: the last column with a given name wins.
- A row with fewer fields than the header gets empty strings for the missing ones. A row with extra fields loses them.
- The file is read as UTF-8. A file saved in a legacy encoding may show damaged characters.
Common problems
The file was refused before anything started.
CSV to JSON converter checks the extension before it reads a byte, and it accepts .csv. Browsers report file types inconsistently enough that the extension is what decides.
Rename the file if the extension is simply wrong, or convert it to one of those first. A file whose extension does not match its contents is refused for the same reason, and that one needs converting rather than renaming.
It said the file was too large.
The limit here is 25 MB. It is not a policy but a measurement: everything runs on your own device, and past that size a phone runs out of memory rather than finishing slowly.
Split the file, reduce it before converting, or use a desktop program for that one. A machine with more memory will manage more, but the limit does not know which machine it is on.
I selected several files and only one converted.
This tool takes one file at a time. Doing several at once would multiply the memory in use, which is the thing most likely to fail on a phone.
Convert them one after another. Nothing is kept between them, so there is no state to reset.
The tab reloaded itself part-way through.
The browser ran out of memory and restarted the page. At sizes approaching 25 MB this is the failure a phone hits first, and it looks like a crash rather than an error.
Try a smaller file, close other tabs, or run it on a computer. Nothing was uploaded or lost — the original file is untouched on your device.
The result opened in the wrong program.
The output is a .json file, and your system opens that extension with whatever it was told to. Nothing about the conversion decides it.
Open it from inside the program you want, or change the default for .json in your system settings. The file itself is correct.
Frequently asked questions
- Is my file uploaded?
- No. The conversion runs entirely in your browser. The file never leaves your device and no request carrying its contents is made.
- Why are my numbers quoted in the output?
- CSV carries no type information, so every field is kept as text. Converting "007" to the number 7 or a long account number to scientific notation loses data that cannot be recovered, so values are left exactly as written.
- Does it handle quoted fields and embedded commas?
- Yes. Quoted fields, escaped quotes, and line breaks inside a quoted value are all parsed correctly.
- What about semicolon-separated files?
- This tool expects commas. A semicolon-separated export from a European spreadsheet will come out as a single column, so re-export it with commas first.
- How large a file can it handle?
- The limit is 25 MB. Files over a few megabytes are still parsed in chunks so the page keeps responding, but conversion takes longer and needs more memory on phones.
- Do I need to install anything or create an account to use CSV to JSON converter?
- No, to all of it. CSV to JSON converter runs inside the browser you already have, with no sign-up, no download, no watermark on the result, and no cap on how many files you convert. There is nothing to uninstall afterwards either, because nothing was installed.
- Does CSV to JSON converter work offline?
- Once the page has loaded, yes. The conversion runs on your device, so it needs no connection to do the work. The first visit fetches the page and the code that does the converting; after that a lost connection stops nothing, and a converted file appears exactly as it would online.
- How large a file can CSV to JSON converter handle?
- The limit is 25 MB. It is a deliberate one rather than a technical ceiling: the real constraint is memory, and a file that decodes to more than the device can hold fails in a way that is hard to explain. Phones run out well before laptops do, which is why the limit is set where it is.
- Can I convert several files at once with CSV to JSON converter?
- Not here: this tool takes one file at a time, because what it does depends on choices you make about that particular file. Convert them one after another, or look at the batch converters in the same category, which are built for a folder at a time.