Data Conversion Tools Runs in your browser Free · no account

JSON to CSV Converter

The JSON to CSV converter turns an array of JSON objects into delimited rows with a header line. Nested objects are flattened into dot-separated columns, arrays can be flattened or written as inline JSON, and the union of all keys is used so no field is lost.

Options
JSON array 0 characters
CSV to JSON
CSV

Your result will appear here.

Not sure where to start? Use Load example.

Results update automatically and are calculated on your device. Nothing you type is sent to a server.

Runs in your browser. Processing happens entirely in your browser. Nothing you enter is sent to Delimiter.live.

How to use the JSON to CSV Converter

  1. Paste a JSON array of objects, or load a .json file.
  2. Choose how nested objects and arrays should be represented.
  3. Pick a delimiter — use semicolons if your spreadsheet locale expects them.
  4. Download the CSV, ticking the BOM option if Excel garbles accented characters.

Example

Input
[{"name":"Ada","address":{"city":"London"}}]
Output
name,address.city
Ada,London

Common use cases

  • Getting an API response into a spreadsheet for a colleague who does not read JSON.
  • Preparing a bulk-import file for a CRM or advertising platform.
  • Producing a flat report from a nested configuration or export file.
  • Diffing two API responses by converting both to CSV and sorting them.

Limitations and things to watch for

  • The input must be an array of objects, or a single object which is treated as one row. Deeply irregular JSON — an array of arrays of mixed types — has no natural tabular shape and will produce a wide, sparse table.
  • Columns are the union of every key found across all records, so records missing a key get an empty cell rather than being rejected.
  • CSV has no type system: every value becomes text, and quoting is applied wherever the delimiter, a quote or a line break appears in a value.

Frequently asked questions

What happens to nested objects?
By default they are flattened into dot-separated column names, so {"address":{"city":"London"}} becomes an address.city column. You can switch to inline JSON if you would rather keep the structure in a single cell.
What if some records are missing fields?
The header is the union of every key across all records, and any record missing a key simply gets an empty cell. Nothing is dropped.
Why does Excel show my accented characters incorrectly?
Excel assumes a legacy encoding unless the file starts with a UTF-8 byte order mark. Tick the BOM option and Excel will read the file as UTF-8.
Is my JSON uploaded anywhere?
No. Parsing and conversion happen entirely in your browser.

Share this tool