JSON to CSV Converter

Convert JSON to CSV format free online. Transform data instantly, download CSV. Browser-based, no registration, instant conversion, secure.

Free online file converter tool. Works in Chrome Firefox Safari Edge Opera and other modern browsers on Windows macOS Linux Android and iOS. No software installation required. Browser-side processing keeps your file local when supported. Completely free to use with no account needed.

JSON to CSV Converter

Convert JSON arrays to CSV format instantly in your browser.

JSON to CSV Features

Fast, accurate JSON to CSV conversion.

Array Support

Converts JSON arrays of objects into CSV rows.

Nested Flattening

Nested objects flattened with dot notation.

Auto Headers

Column headers from your JSON keys.

How to Convert JSON to CSV Online

  1. Paste a JSON array of objects

    Copy your JSON into the input box. The converter expects a top-level array where each element is an object, for example a list of records exported from an API or database. Each object becomes one CSV row.

  2. Click Convert to CSV

    The tool parses your JSON in the browser, collects every key seen across all objects to build the header row, and writes one data line per object. Values with commas, quotes, or line breaks are wrapped in double quotes and escaped automatically.

  3. Review and copy the result

    Check the CSV output, then use the Copy button to send it to your clipboard. Paste it straight into Excel, Google Sheets, or any spreadsheet app, or save it as a .csv file. Use Clear to reset both boxes for the next input.

What Each JSON Value Type Becomes in CSV

The converter walks every object in your array and maps each value to a single CSV cell. Knowing how each type is handled helps you predict the output before you convert.

JSON valueCSV cell outputNotes
StringThe text as-isQuoted only if it contains a comma, double quote, or newline.
Number or booleanPlain text (12, true)Written without quotes.
null or missing keyEmpty cellRows that lack a column key are left blank for that column.
Nested objectJSON string, such as {"city":"Rome"}Serialized in one cell, not split into separate columns.
ArrayJSON string, such as [1,2,3]Kept as a single quoted cell.
Double quote inside textDoubled to "" and the cell is quotedFollows standard CSV escaping rules.

Is This Tool Right for Your Data

Flat arrays of records

Ideal. An array of objects with simple string, number, and boolean fields converts cleanly, with one column per key and one row per object.

Objects with different keys

Supported. The header row is the union of all keys across every object, so records with extra or missing fields still line up, with blanks where a key is absent.

Deeply nested JSON

Works, with a caveat. Nested objects and arrays are written into a single cell as JSON text rather than expanded into their own columns. Flatten the data first if you need separate columns.

A single object or raw value

Not accepted. The input must be a JSON array. Wrap a lone object in square brackets, like [ { ... } ], so it is treated as a one-row array.

Common Problems and Fixes

"Input must be a JSON array of objects"

Your JSON parsed successfully but the top level is an object, string, or number rather than an array. Wrap your data in square brackets so it becomes an array, for example change { "id": 1 } to [ { "id": 1 } ].

"Invalid JSON" error

The text could not be parsed. Common causes are trailing commas, single quotes instead of double quotes around keys and strings, or unquoted keys. Paste the input into a JSON validator to find the exact position, then convert again.

Nested data shows as {"...":"..."} in a cell

This is expected. Sub-objects and arrays are stored as JSON text in one cell. To split them into individual columns, flatten the structure before converting, for example rename address.city to a top-level key named address_city.

Some rows have blank cells

Those objects do not contain that key. The converter builds columns from every key it finds across the whole array, so any object missing a key produces an empty value in that column. Add the key to those objects if you need a value there.

References

  1. RFC 8259: The JSON Data Interchange Format - IETF
  2. RFC 4180: Common Format for CSV Files - IETF
  3. JSON - MDN Web Docs, Mozilla
  4. Comma-separated values - overview
  5. JSON.parse() - MDN Web Docs, Mozilla
  6. Clipboard.writeText() - MDN Web Docs, Mozilla
  7. Blob - MDN Web Docs, Mozilla
  8. Blob.text() - MDN Web Docs, Mozilla