ZumaTools

JSON to CSV Converter

Paste a JSON array of objects or open a .json file and get properly quoted CSV instantly, right on your device.

Converted on your device — nothing is sent anywhere.

How it works

  1. Paste your JSON array into the input box, or open a .json file from your computer.
  2. Pick a delimiter (comma, semicolon, tab or pipe) if your spreadsheet expects something other than commas.
  3. Copy the generated CSV to your clipboard or download it as a .csv file.

Frequently asked questions

How are nested objects converted to CSV columns?
Nested objects are flattened using dot notation, so a value at user.address.city becomes a column named user.address.city. This keeps every leaf value in its own column instead of dumping raw JSON into cells, which makes the output usable in Excel and Google Sheets without further processing.
What if my objects have different keys?
The header row is built from the union of all keys found across every object, in the order they first appear. Rows that lack a given key simply get an empty cell in that column, so ragged API responses convert without errors.
How does the tool handle commas, quotes and line breaks inside values?
Any value containing the delimiter, a double quote or a line break is wrapped in double quotes, and embedded quotes are doubled, following the RFC 4180 convention. Spreadsheet applications read such files correctly, so text like addresses or free-form comments survives the round trip.
Why do I get an error saying the input must be an array?
CSV is a table, so the converter needs a JSON array where each element becomes one row. If your data is a single object, wrap it in square brackets, or if the array is nested inside a response wrapper like { “data”: […] }, paste just the inner array.
Is my JSON data uploaded to a server?
No. Parsing and conversion run entirely in your browser with JavaScript, so the data never leaves your device. That makes it safe for API responses containing user records, tokens or anything else you would not want on a third-party server.

About this tool

This converter turns a JSON array of objects into a clean CSV table. Paste the array or open a .json file and the CSV appears immediately: each object becomes a row, the header row is assembled from the union of every key in the data, and nested objects are flattened into dot-notation columns such as order.customer.email. Arrays inside a value are kept as compact JSON strings so no data is silently dropped.

Everything runs client-side in your browser. The output follows RFC 4180 quoting rules — values containing the delimiter, double quotes or line breaks are wrapped in quotes with embedded quotes doubled — which is exactly what Excel, Google Sheets and most import scripts expect. You can switch the delimiter to semicolon, tab or pipe for locales and systems where commas conflict with decimal separators or existing data. Because nothing is uploaded, converting production API responses or customer exports carries no privacy risk, and the tool keeps working offline once loaded.

Typical uses: turning a REST API response into a spreadsheet for a colleague, converting a MongoDB or Firestore export into something a BI tool can ingest, preparing JSON logs for pivot-table analysis, or producing an import file for a CRM that only accepts CSV. Developers also use it in reverse-engineering sessions to eyeball large JSON payloads as a table, where inconsistent keys stand out as sparse columns.

Two practical tips. If your file is a response wrapper rather than a bare array, paste only the inner array — the error message will tell you when the top level is not an array. And if you plan to open the file in Excel with a locale that uses comma decimals, choose the semicolon delimiter before downloading; Excel in those locales expects it and will otherwise cram each row into a single cell.

Related tools