Skip to content

📊 CSV ⇔ JSON Converter

Convert CSV ⇔ JSON in both directions with custom delimiter, header row toggle, quoted values, and empty cell handling.

100% Free No signup Browser-only 5 languages Dark mode

🔗 Related Tools

📖 Where people get stuck

Convert between CSV and JSON, choosing the delimiter, whether there is a header row and how quotes are handled. Everything runs in the browser. CSV has no official specification — RFC 4180 documents common practice after the fact and binds nobody. Whether a conversion goes wrong therefore depends on what the software on the other end calls CSV.

Case What happens What to do
Opens as garbage in Excel When Excel opens a CSV without a BOM it falls back to the system default encoding. On a Japanese Windows install that is a Shift_JIS variant, so a UTF-8 file comes out mangled. The file is fine and Excel simply guessed wrong, but to whoever received it the file is broken. Save CSV destined for Excel as UTF-8 with BOM: the EF BB BF prefix tells Excel definitively that it is UTF-8. The BOM is a nuisance everywhere else, though — read the file programmatically and the first column name carries an invisible character, so what you think is id is really id and the key never matches. Producing separate files for Excel and for machine-to-machine use ends up causing the fewest arguments.
Commas or newlines inside a value shift the columns CSV is a format in which a value can contain the delimiter itself. Addresses and free-text fields routinely contain commas, and comments span lines. Quoting handles it, but a double quote inside a quoted value has to be doubled as "" — and a great deal of CSV in the wild does not follow that rule. When rows come out with the wrong column count, set them aside in a separate file rather than dropping them. The cause is nearly always inconsistent quoting, and one bad row corrupts every row after it. If you are the one producing the file, switching the delimiter to tab (TSV) removes most of these incidents, because values almost never contain a tab. The CSV cleaner will surface the mismatched rows first.
Numbers and dates get silently rewritten CSV carries no type information: everything is text and the reader guesses. The result is a familiar set of corruptions — leading zeros disappear (a postal code 0123456 becomes 123456), hyphenated values turn into dates, and long digit strings become scientific notation (phone numbers, sixteen-digit IDs). Converting to JSON does not save you if anything that looks numeric becomes a number. Decide up front that IDs, postal codes and phone numbers are strings. On the JSON side that means "id": "0123456" in quotes. There is an Excel-only trick of writing ="0123456", but it breaks in every other tool. In practice the most reliable fix is to remove the open-in-Excel-and-save-again step from the workflow, because that single round trip is where the types are lost.

CSV to JSON cannot express nesting. Dotted column names such as user.name are a common convention for it, but not a standard, so it depends entirely on what reads the file. Going the other way, any field holding an array or an object loses information in whatever flattening you choose. Rather than forcing non-tabular data into CSV, JSON Lines (.jsonl), one JSON object per line, holds up better and streams. CSV earns its place when a human is going to open it in a spreadsheet.

📖 How to Use

  1. 1
    Set direction and delimiter
    Select CSV to JSON or JSON to CSV, and choose a delimiter: comma, tab, semicolon, or pipe.
  2. 2
    Enter data
    Paste your data into the left input. Use the Sample button to load example data.
  3. 3
    Copy the result
    The converted result appears on the right. Click Copy to copy it to your clipboard.

❓ Frequently Asked Questions

Does it support CSV without a header row?
Yes. Select "No header row" to output each row as an array instead of an object.
Are quoted values with commas handled correctly?
Yes. The parser handles RFC 4180 quoting, including fields that contain commas or newlines.
Does it handle large files?
All processing is done in-browser. For very large files (tens of thousands of rows), processing may be slow.
🐛 Found a bug or issue with this tool?

Free to use, no signup. Even just the steps to reproduce are helpful. Reports go directly to the operator and help us fix issues.

* Browser info (UA / screen / language / URL) is sent automatically to help reproduce the issue