Advertisement

JSON to CSV Converter

Convert a JSON array of objects to CSV for Excel or Google Sheets. Flattens nested objects into dot-named columns and quotes values correctly.

An array of objects, one object, or an object that wraps one array (like {"results": [...]}).

APIs and databases hand you JSON, but spreadsheets, BI tools and many import screens want CSV. This converter turns an array of JSON objects into a table: every key becomes a column, every object becomes a row, and values containing commas, quotes or line breaks are quoted the way RFC 4180 and Excel expect. It runs in your browser, so private data is never uploaded.

How to use this tool

  1. Paste your JSON — an array of objects, a single object, or an API response that wraps one array.
  2. Pick the delimiter: comma for most tools, semicolon for Excel in countries that use a decimal comma, tab for TSV.
  3. Choose whether nested objects become separate columns (address.city) or stay as JSON text.
  4. Copy the CSV, or check the preview table first.

Formula

Columns = every key in order of first appearance. A field is wrapped in "…" when it contains the delimiter, a quote, a line break or leading/trailing spaces; inner quotes are doubled ("").

Objects that lack a key get an empty field in that column. Arrays are written as JSON text such as ["math","code"], because a list has no single cell value. null becomes an empty field; true and false stay as words. Ambiguous flattened names are rejected. Import untrusted spreadsheet fields as text to avoid formula interpretation.

Example

The sample has two people. Flattening gives the columns id, name, email, address.city, address.zip, tags, active — 7 columns and 2 rows. "Lin, Mei" contains a comma, so it is written as "Lin, Mei" in quotes; Ada has no "active" key, so her last field is empty, and her tags become "[""math"",""code""]".

Frequently asked questions

How do I open the CSV in Excel without broken columns?

Save the text as a .csv file. If Excel puts everything in one column, your system expects semicolons — convert again with the semicolon delimiter, or use Data → From Text/CSV and choose the comma.

What happens to deeply nested JSON?

With flattening on, nested objects become dot-separated column names at any depth, such as order.customer.address.city. Arrays stay as JSON text in one cell.

Are large numbers kept exactly?

Integers outside ±9,007,199,254,740,991 are rejected instead of silently rounding. Quote long IDs in the JSON. Other numbers use JavaScript floating-point precision; duplicate keys are rejected.

Is my data uploaded?

No. Parsing and conversion happen entirely in your browser.

Sources

Last updated: 2026-10-30

Advertisement