JSON to CSV

Convert a JSON array of objects to CSV with a header row built from every key. Nested values are kept as JSON text. Download a .csv file; nothing is uploaded.

Processed locally in your browser
Loading tool…

About JSON to CSV

The JSON to CSV converter turns an array of objects into comma-separated rows you can open in Excel, Google Sheets, Numbers or a database import tool. Each object becomes a row, and the header row lists every key that appears in any object, in the order the keys are first seen.

Objects that lack a key get an empty cell rather than shifting columns. Values containing commas, quotes or line breaks are quoted and escaped according to standard CSV rules, and nested objects or arrays are written as JSON text in a single cell, so no data is silently dropped.

How to use JSON to CSV

  1. Paste a JSON array of objects into the input box, or open or drop a .json file.
  2. Make sure JSON → CSV is selected; it is the default on this page.
  3. Review the CSV output: one header row followed by one row per object.
  4. Copy the CSV or download it as a .csv file to open in a spreadsheet.

Features

  • Builds the header from the union of all keys, so objects with different fields still line up.
  • Quotes fields that contain commas, double quotes or line breaks and doubles any embedded quotes.
  • Writes nested objects and arrays as JSON text; null and missing values become empty cells.
  • Accepts a single object as well as an array, producing one data row.
  • Uses commas as the delimiter and one line per record.
  • Switches to CSV → JSON on the same page for the reverse conversion.

Common uses

  • Opening an API export or database dump in a spreadsheet for analysis.
  • Sharing JSON data with colleagues who work in Excel or Google Sheets.
  • Preparing records for a CRM, mailing list or bulk import that requires CSV.
  • Turning test results or log entries stored as JSON into a table.

Tips

  • If your data is wrapped in an outer object, such as {"items": [...]}, paste only the inner array. Otherwise the whole response becomes a single row.

Frequently asked questions

What JSON structure does the converter expect?

An array of objects, such as [{"id": 1, "name": "Ada"}]. A single object is treated as one row. Arrays of plain values, such as [1, 2, 3], and arrays of arrays are rejected with the message “Expected an array of objects.”

How are nested objects handled?

Nested objects and arrays are not flattened into separate columns. Each one is written as JSON text inside a single cell, for example {"city":"Paris"}. This keeps every value without guessing column names; you can split the column later in a spreadsheet if needed.

Why are some cells empty?

The header contains every key found in any object. When an object does not have one of those keys, or its value is null, that cell is left empty so the remaining columns stay aligned with their headers.

Can I choose a semicolon or tab delimiter?

No. The output always uses commas. Spreadsheet apps in regions that expect semicolons can still read it through their text or CSV import option, where you choose the delimiter explicitly instead of opening the file directly.

Will numbers keep leading zeros in Excel?

The CSV keeps values exactly as they appear in the JSON, so a string such as "00123" stays 00123 in the file. Excel may strip leading zeros or reformat long numbers when it opens a CSV directly; importing that column as Text avoids it.

Can I convert JSON to CSV online for free without signing up?

Yes. Use this tool without an account or payment. Files are processed in your browser. Download the result after processing; supported formats and browser requirements are described above. Conversion can change quality, transparency or layout depending on the formats.

Is my input uploaded?

Tools run in your browser. Files, text and results are not uploaded to our servers and are cleared when you leave the tool.

Your privacy comes first

Tools run in your browser. Files, text and results are not uploaded to our servers and are cleared when you leave the tool.

Find your next tool
↑ ↓ · Enter ↵Esc · Close search