JSON to CSV Converter

Convert JSON arrays to CSV format. Custom delimiters supported.

About JSON to CSV

Export JSON data to CSV format with customizable delimiters. Automatically extracts all keys from JSON objects and creates proper CSV headers. Download as CSV file.

Going the other direction — JSON to CSV — is what you do when a stakeholder wants to open your API data in Excel, when a BI tool only accepts tabular input, or when you're handing data to a vendor whose ingestion pipeline predates the JSON era. The source is usually an array of objects: each object becomes a row, each unique key across all objects becomes a column.

The non-obvious part is handling nested structures. A raw JSON object might have {"name": "Ada", "address": {"city": "London"}}, but CSV has no concept of nesting. This converter flattens nested objects into dotted keys like address.city, and serializes arrays as JSON strings inside a single cell — so you don't lose information even when the shape doesn't map cleanly. Optional flattening depth lets you stop at a level if you'd rather keep deep nesting as JSON blobs.

Quoting follows RFC 4180: any cell containing the delimiter, a double quote, or a newline is wrapped in double quotes, with internal quotes doubled. Headers come from the union of all keys across all objects, so if different rows have different fields, no data gets dropped. The output opens cleanly in Excel, Numbers, Google Sheets, and every SQL load utility.

How to use the JSON to CSV
  1. 1

    Paste a JSON array

    Drop an array of objects — the typical shape returned by REST APIs, a database query, or a jq result. Keys don't need to be identical across objects.

  2. 2

    Choose delimiter and flattening

    Pick comma, semicolon, tab, or pipe. Set flattening depth for nested objects — zero keeps them as JSON blobs, higher values flatten into dotted-key columns.

  3. 3

    Download as CSV

    Copy to clipboard or download as a .csv file. The output opens directly in Excel, Numbers, and Google Sheets with quotes and escapes handled correctly.

Common use cases

Exporting API data for analysts

Fetch an admin API response, convert to CSV, and hand it to someone who lives in Excel.

Loading data into a warehouse

Many warehouse COPY commands (Redshift, BigQuery, Snowflake) ingest CSV faster than JSON. Convert before loading to cut import time.

Sharing with non-technical stakeholders

Product managers and ops teams often want CSV they can sort and filter in a spreadsheet, not JSON they have to format.

Feeding BI and reporting tools

Tools like Tableau, Looker, and Metabase accept CSV uploads for ad-hoc analysis without setting up a full data pipeline.

Frequently asked questions
How does it handle nested objects?

Nested objects flatten into dotted-key columns: {"user": {"name": "Ada"}} becomes a user.name column. You can set a max flatten depth — anything deeper stays as a JSON string inside a cell.

What about arrays inside objects?

Arrays are serialized as a JSON string in a single cell by default — e.g. "[1,2,3]". For simple tag-like arrays, toggle the join-arrays option to get "a|b|c" instead.

Do missing keys cause problems?

No. The converter scans all objects to build the header row from the union of keys. Rows missing a field get an empty cell in that column.

Will Excel open the file correctly?

Yes — the output is standard RFC 4180 CSV with CRLF line endings and BOM optionally prepended for Excel's UTF-8 detection. If Excel still splits columns wrong, check the delimiter matches your regional settings (semicolon in many European locales).

Can it handle a single object instead of an array?

Wrap it in an array first: [ {...} ]. A lone object can't be represented as CSV rows since CSV by definition describes multiple records.

developerconverterformatter