How to use the JSON CSV converter
- Choose the direction (JSON to CSV or CSV to JSON) and the delimiter.
- Paste your data into the input box and the result appears right below.
- Copy it or save it to a file. CSV for Excel is saved with a BOM so non-English text is not garbled.
How the JSON CSV converter works
JSON is a data format made of keys and values, and CSV is a table format separated by delimiters such as commas. When a JSON array becomes CSV, the keys of all items are gathered into the header row and each item fills in values in the same order. If a value contains a comma, a double quote or a line break, it is wrapped in double quotes and inner double quotes are doubled, following the CSV rules. When CSV becomes JSON, the first row is treated as the keys and the remaining rows become an array of objects. If a value is an object or array, it is put into one cell as a JSON string. All conversion happens inside your browser and the data is never sent to a server.
Common problems when converting
If the JSON is not valid, an error message appears. Common causes are a trailing comma after the last item or strings wrapped in single quotes. Also, converting to CSV stores every value as text, so if you need to tell numbers from text, check when converting back to JSON.
Tips
- Convert JSON to CSV and save it when you want to open an API response in Excel.
- To use a CSV exported from Excel in development, converting it to JSON is convenient.
- If non-English text looks garbled, use the BOM save button for Excel.
- For a CSV that uses semicolons, change the delimiter setting before converting.
Notes & limitations
Very large files can slow the browser. Keep converted results containing personal data in a safe place.
FAQ
Do numbers come out as text when I convert CSV to JSON?
Yes. CSV has no type information, so all values are converted to strings.
Text looks garbled in Excel.
Opening a file saved with the BOM button for Excel shows non-English text correctly.
What happens to nested JSON?
Object or array values are placed in one cell as JSON text.