Convert JSON to CSV

Paste JSON, get a clean CSV. Nested objects flatten automatically. Files never leave your browser.

Delimiter:

How to convert JSON to CSV

  1. Paste your JSON in the left pane — an array of objects, or a single object.
  2. Pick a delimiter. Comma is standard. Use semicolon for European Excel; tab if your data contains commas.
  3. Copy or download. The right pane shows the CSV instantly. Click Download CSV for a file or Copy to clipboard to paste elsewhere.

Nested JSON: how flattening works

Spreadsheets are flat — one value per cell. JSON is hierarchical. The converter walks every key and produces a single column per leaf, joining the path with dots:

Input:
[
  { "id": 1, "user": { "name": "Ada", "addr": { "city": "London" } } },
  { "id": 2, "user": { "name": "Linus", "addr": { "city": "Helsinki" } } }
]

Output:
id,user.name,user.addr.city
1,Ada,London
2,Linus,Helsinki

Arrays of primitives are JSON-stringified into one cell:

Input:
[{ "name": "Ada", "tags": ["admin","vip"] }]

Output:
name,tags
Ada,"[""admin"",""vip""]"

For arrays of objects, the same rule applies — each cell holds a JSON-stringified blob. If you need them split into multiple rows, pre-flatten with jq '.[] | .field[]' first.

When to use JSON to CSV

  • Importing API data into a database — most SQL tools have a one-line CSV import. JSON support is less universal.
  • Sharing API responses with non-developers — analysts, support, ops teams want a sheet, not a payload.
  • Loading into a BI tool — Tableau, Looker, PowerBI all eat CSV out of the box.
  • Diffing two API snapshots — easier in CSV than JSON for non-engineers.
  • Spreadsheet pivot tables — pivot a flat dataset, not a tree.

JSON to CSV vs JSON to Excel

CSV is plain text — universal, lightweight, machine-friendly. Excel (.xlsx) preserves number types, dates, and is more polished for sharing with humans. Pick CSV when:

  • The destination is a database, BI tool or another script — CSV imports are universal.
  • You want a small file — CSV is much smaller than .xlsx.
  • You don’t need formatting, formulas or multiple sheets.

Pick Excel when the recipient will open the file in Excel or Sheets and you want a polished result.

Handling tricky JSON

Heterogeneous objects

If some objects have a discount field and others don’t, the CSV will include a discount column with blank cells where the field was missing. Headers are always the union of all keys.

Date strings

Dates in JSON are typically ISO strings (2026-04-29T22:00:00Z). They go into the CSV unchanged — Excel and Sheets will recognize most ISO formats and convert them to date cells on import.

Very large arrays

Files up to ~20 MB of JSON convert in a fraction of a second. Past that, browser memory becomes a factor. Split the array, convert in batches, and concatenate the resulting CSVs.

Privacy

No upload, no logging, no third-party APIs. The conversion uses PapaParse in your browser. Open DevTools → Network and you’ll see only static asset requests, never your JSON content.

Related tools

Frequently asked questions

  • Does it handle nested JSON objects?

    Yes. Nested keys are flattened using dot notation. Arrays of primitives are kept as JSON strings inside a single cell.

  • What input does it accept?

    An array of objects (most common) or a single object. Paste raw JSON or upload a .json file.

  • Can I choose the CSV delimiter?

    Yes — pick comma, semicolon or tab from the delimiter dropdown.

  • How are arrays of objects handled?

    Arrays of objects are stringified into a single cell. If you want each array item as its own row, use a JSON pre-processor like jq to flatten first.

  • Is the JSON uploaded?

    No. The conversion runs in your browser using PapaParse.

  • What about quotes and commas inside fields?

    Properly escaped on output. Fields containing the delimiter, quotes or newlines are wrapped in double quotes per RFC 4180.

  • Why are some fields blank?

    If your JSON has heterogeneous keys (some objects have a field, others don't), missing values become blank cells.