What it does
This converter turns CSV (comma-separated values) into JSON, and JSON back into CSV. CSV is what spreadsheets, databases and analytics tools export; JSON is what APIs, JavaScript code and configuration files expect. Paste either format and the other appears instantly.
The parser follows RFC 4180, the CSV standard: fields can be wrapped in double quotes, a quote inside a quoted field is written as two quotes (""), and quoted fields may contain commas and line breaks. Windows (CRLF) and Unix (LF) line endings both work, and a UTF-8 byte order mark from Excel is removed automatically.
How to use
- Paste CSV into the Input box, drop a
.csvor.tsvfile on it, or click Sample. - Leave Delimiter on Auto-detect, or choose comma, semicolon (common in European Excel exports), tab or pipe.
- Keep First row is a header on to get an array of objects keyed by column name. Turn it off to get an array of arrays.
- Detect numbers and booleans turns
42into a number andtrueinto a boolean. Turn it off to keep every cell as text. - Switch Direction to JSON → CSV to go the other way. Copy or download the result.
When converting JSON to CSV, the input should be an array of objects. Columns are the union of all keys in order of first appearance, so rows with missing fields simply get an empty cell. Cells that contain the delimiter, quotes or line breaks are quoted automatically.
Example
id,name,active
1,Ada Lovelace,true
2,"Turing, Alan",false
becomes
[
{ "id": 1, "name": "Ada Lovelace", "active": true },
{ "id": 2, "name": "Turing, Alan", "active": false }
]
Handling messy files
Empty header cells are named column1, column2 and so on, and duplicate names get a suffix such as name_2, so no value is overwritten. Rows shorter than the header are padded with empty strings; extra cells get their own column names. If a quoted field is never closed, the error tells you the exact line and column where it starts.
FAQ
› Is my CSV uploaded to a server?
No. Parsing and conversion run entirely in your browser, so files with customer or business data never leave your device.
› How is the delimiter detected?
In Auto-detect mode the tool counts commas, semicolons, tabs and pipes in the first line (ignoring anything inside quotes) and uses the most frequent one. Pick a delimiter yourself if the guess is wrong.
› Why is a long number kept as a string?
JavaScript numbers lose precision beyond 15–16 digits, so long integers such as IDs, phone numbers or card numbers stay as strings. Values with leading zeros like 007 are also kept as text.
› What happens to nested objects when converting JSON to CSV?
Nested objects and arrays are written into a single cell as compact JSON, so no data is lost and you can parse the cell again later.