Convert between JSON and CSV

Free online JSON ↔ CSV converter — turn an API response into a spreadsheet you can open in Excel or Google Sheets, or seed a JSON test fixture from a column dump your colleague mailed you. Paste a JSON array of objects (or a JSON object of objects) and the tool auto-detects the columns and renders a clean RFC 4180 CSV. Paste CSV and get a JSON array back. Pick the delimiter (comma for standard CSV, tab for TSV that pastes cleanly into Sheets, semicolon for European Excel, or pipe for database dumps), toggle whether the first row is a header, and decide whether values like "42", "true", "null" should be coerced to typed JSON or kept as strings (matters for IDs like "00123" that must stay strings). Convert via clipboard copy or .json/.csv download with a UTF-8 BOM so Excel opens it correctly.

How to use

1
Paste your data

JSON or CSV — direction is auto-detected by default.

2
Delimiter and header row

Delimiter, header row, type coercion.

3
The other format appears on the right

CSV or JSON appears in the right pane.

4
The clipboard, or a .csv / .json file

Get a clipboard copy or a .csv / .json file.

Convert a JSON array of objects to a CSV/TSV/Excel file, or paste a CSV and get JSON — both ways, in the browser

Direction
Delimiter
Options
Input
Output
Don't know what to try?
750+ tools — open a surprise
🎲 Surprise me

What you can do

Auto-detect direction
Starts with { or [ → JSON. Has commas/tabs/semicolons → CSV. Or pick the direction manually.
Four delimiters
Comma (standard CSV), tab (TSV — Excel-friendly), semicolon (European Excel), pipe (database dump).
Type coercion (optional)
Strings like "42", "true", "null" become typed JSON values when CSV → JSON; opt out to keep everything as strings.
Header row toggle
CSV without a header row produces arrays-of-arrays JSON; CSV with header produces array-of-objects.
Quote-safe output
Strings containing commas, quotes, or newlines are RFC 4180 quote-escaped automatically.
Live stats
See row × column counts after each conversion.

Typical uses

  • Convert a JSON API response (50 MB and up) into a CSV for opening in Excel or Google Sheets.
  • Turn a spreadsheet column dump into a JSON array for seeding a Jest/PHPUnit test fixture.
  • Convert a German/French Excel semicolon CSV into modern comma-delimited CSV your tooling expects.
  • Strip type coercion to keep "00123" as a string instead of becoming the number 123 (loses the leading zero).
  • Generate a TSV (tab-separated) for direct paste into a Google Sheet or Notion table.
  • Round-trip a small JSON config to CSV, edit in Excel, paste back, convert to JSON — quick batch edits without writing a script.

Why this one

Most online converters force you to choose JSON-to-CSV or CSV-to-JSON as two separate tools. This one combines them with auto-detection — paste anything, get the other. RFC 4180 quoting is implemented properly so values with embedded newlines, commas or quotes do not silently corrupt your output (a real failure mode of many cheap converters). The download includes a UTF-8 BOM so Excel handles accented characters correctly without showing mojibake. No signup, no per-payload quota.

Common questions

What is "type coercion"?

Without it, CSV → JSON keeps every cell as a string ("42" stays "42"). With it, strings that look like JSON values are converted: "42" → 42, "true" → true, "null" → null, "3.14" → 3.14. Useful for typed data, dangerous if you have IDs that happen to look like numbers but should stay strings ("00123" becomes 123).

Does it support nested JSON?

JSON → CSV will JSON.stringify any nested object/array into the cell as text. CSV → JSON does not auto-parse cells that contain JSON — toggle "Coerce types" and the JSON values will be parsed.

What about UTF-8 BOM?

The download includes a UTF-8 BOM so Excel opens it correctly with multi-byte characters. The clipboard copy does not include a BOM (Sheets and modern tools handle UTF-8 natively).

What happens to nested objects when I convert to CSV?

They get flattened, because a CSV row is a flat list of cells and there is nowhere for a nested structure to go. A key inside an object becomes a column named by its path — an address object with a city inside it turns into a column called address.city — and an array becomes either indexed columns or a single joined cell depending on what it holds. That is lossless enough to open in a spreadsheet and edit, and converting back reconstructs the nesting from the same paths. Where it stops being reversible is arrays of unlike objects: if the first item has three fields and the fifth has seven, the header was fixed by the first rows and the extra fields have nowhere to sit.

Why semicolon for "Excel EU"?

In locales where the decimal separator is "," (most of Europe), Excel uses ";" as its default CSV delimiter to avoid ambiguity. Files exported from a German or French Excel install will be semicolon-delimited.

💡 Want us to improve this tool just for you?

We can! Just send us a quick message with your idea. If you'd like to discuss it in detail, leave your email and we'll get back to you. You can stay anonymous.

How do you rate this tool?

Thank you for your rating!
Want to share more? Leave a comment!
Thank you! Your comment will appear after moderation.
Published Updated Author: