Skip to content
epitometool

JSON to CSV

JSON & data

Flatten JSON arrays into CSV with custom delimiters.

Updated

JSON input

Options

CSV output

3 rows · 4 columns
id,name,address.city,address.zip
1,Alice,NYC,10001
2,Bob,LA,90001
3,"Charlie, Jr.",Chicago,60601

Quick start

How to convert JSON to CSV

Paste JSON, pick a delimiter, copy or download the CSV — nothing leaves your browser.

  1. Step 1
    Paste JSON

    Drop an array of objects (or a single object) into the textarea.

  2. Step 2
    Pick options

    Choose delimiter, header row, nested-key flattening, line endings and whether to add a UTF-8 BOM for Excel.

  3. Step 3
    Copy or download

    Copy the CSV to clipboard or download as data.csv ready for Excel / Numbers / Google Sheets / pandas.

In-depth guide

Convert JSON to CSV in the browser

Paste an array of JSON objects and download a clean CSV — ready for Excel, Google Sheets, or any analysis tool. Nested objects flatten with configurable separators; special characters escape per RFC 4180. Everything runs locally.

Expected JSON shape

Best results come from a homogeneous array of objects, like a database query result:

[
  { "id": 1, "name": "Alice" },
  { "id": 2, "name": "Bob" }
]

Mixed shapes still work — each unique key across all objects becomes a column, with empty cells where missing.

Flattening nested objects

Real-world JSON has nesting. With Flatten on:

{ "user": { "address": { "city": "NYC" } } } → column "user.address.city"

You can change the separator (default .) to _ or / for tools that don't tolerate dots in column names. Arrays inside an object are JSON-encoded into a single cell — turn flatten off if you want to keep raw [Object] placeholders.

Excel gotchas

  • UTF-8 BOM — without it, Excel misreads é, ü, 中. Always tick the BOM box when generating for Excel.
  • Locale delimiter — Excel in German / French / Italian opens semicolon-delimited CSVs by default; comma-delimited files end up in column A.
  • Leading zeros — "00123" becomes 123 because Excel auto-types as number. Pre-quote critical strings in the JSON before conversion.
  • Long numbers — 15+ digit integers lose precision in Excel. Cast to string in your JSON if you need the exact value.

Frequently asked questions

Does this tool send my JSON anywhere?

No. Parsing and conversion happen entirely in your browser. Even the download is generated locally via a Blob URL.

What shape of JSON works best?

An array of objects — like a database result set. Each object becomes a CSV row, each unique key becomes a column. A single object converts to a one-row CSV.

How are nested objects handled?

When 'Flatten nested objects' is on, { address: { city: 'NYC' } } becomes a column called address.city. The separator is configurable. Arrays inside objects are JSON-stringified into a single cell.

Which delimiter should I use?

Comma is standard, but Excel in some European locales expects semicolon. Tab is best when fields may contain commas. Pipe is rare but unambiguous.

Why does Excel show garbled characters?

Excel ignores UTF-8 unless the file starts with a Byte-Order-Mark. Tick the 'UTF-8 BOM' option for Excel-compatible exports — most other tools tolerate it.

Are special characters escaped?

Yes — per RFC 4180. Cells containing the delimiter, quotes or newlines are wrapped in double-quotes; embedded quotes are doubled. Output works with Excel, Numbers, Google Sheets, and pandas.

Keep exploring

More tools you'll like

Hand-picked utilities that pair well with the one you're on — all free, client-side, and zero-signup.