Convert CSV to JSON and JSON to CSV
Turn a CSV table into JSON for a program or an API, or flatten JSON records into a CSV you can open in Excel. The conversion runs in your browser, so your data is not uploaded.
Features
Both directions in one tool
Drop CSV and JSON files together: CSV files become JSON and JSON files become CSV, each with its own options.
Separator detection
Comma, semicolon, tab and pipe separated files are recognised automatically, and quoted fields with separators or line breaks inside are read correctly.
Useful JSON
The first row can become the keys of a list of objects. Numbers and true/false can be turned into real JSON values, while text such as 007 or very long numbers stays text.
Nested JSON becomes columns
Records with nested objects get dotted columns such as address.city. The union of all keys becomes the header, so records with different fields still line up.
Works with Excel and Bengali text
The CSV can start with a UTF-8 byte-order mark, which lets Excel show Bengali and other non-English text correctly.
How to use CSV ⇄ JSON Converter
- Choose CSV or JSON files, or drop them onto the page.
- Adjust the options that appear for the kinds of files you added.
- Select Convert.
- Download the converted files, or all of them as a ZIP.
Supported formats
| Accepts | CSV, JSON |
|---|---|
| Produces | JSON, CSV |
The direction is chosen from the file: CSV files become JSON, JSON files become CSV.
Limits and things to know
- Up to 20 files, 50 MB each and 200 MB in total, and at most 20 million cells per file.
- JSON to CSV expects a list of records, a list of lists, or one record. A property that holds a single list, such as {"data": [...]}, is unwrapped for you.
- Arrays inside records are written into one cell as JSON text, and null values become empty cells.
- CSV to JSON writes numbers the way JavaScript does, so 10.50 becomes 10.5. Turn off number detection to keep every value as text.
- Files that are not valid UTF-8 are read as Windows-1252, the old Excel encoding. Other encodings may show wrong characters.
Privacy and processing
Your files are read and converted by your browser inside a Web Worker. Nothing is sent to FilesKit, which has no server that receives data.
Common uses
Feed a CSV export to a program
Turn a spreadsheet export into JSON that a script, a database import or a web app can read.
Open API data in Excel
Convert a JSON response from an API into a table that opens in Excel or Google Sheets.
Check what is inside a file
Switch between the table view and the structured view to understand or clean data before you use it.
Prepare test data
Create JSON fixtures from a CSV someone sent you, or the other way round.
How this differs from other approaches
Online converters upload your files, which is a problem for customer lists and other private data. FilesKit converts on your device. Spreadsheet programs and scripting languages give more control over types, dates and huge files.
Frequently asked questions
Is my data uploaded?
No. The conversion happens in your browser and FilesKit has no server that receives your files.
What happens to the first row?
By default it holds the column names, so each row becomes an object with those keys. Turn the option off to get a plain list of lists. Empty or repeated names are made unique, for example name and name_2.
Can it read a CSV with semicolons?
Yes. The separator is detected automatically, and you can also choose comma, semicolon, tab or pipe yourself.
Why does Excel show strange characters?
Excel needs a byte-order mark to recognise UTF-8. Keep the Excel-friendly option on when you convert JSON to CSV and non-English text such as Bengali will display correctly.
How are nested objects handled?
Nested objects are flattened into columns with dotted names, for example user.name. Lists inside a record are stored as JSON text in a single cell.