Convert JSON to CSV

Paste a JSON array of objects, or drop a .json file, and download it as a CSV. Nested objects become dot-notation columns; nothing is sent anywhere.

Convert JSON to CSV

Drop your JSON file here

Up to 20MB per file. Stays on this device.

Nothing is sent anywhere. Turn off your Wi-Fi and this page still works - try it.

How it works

  1. Drop or choose a .json file, or paste a JSON array directly into the text box.
  2. Review the preview table - every object becomes one row, every field becomes one column.
  3. Download the result as a CSV file, ready to open in Excel, Sheets, or any spreadsheet.
Example output

Input

[
  { "sku": "A100", "name": "Widget", "price": 9.5 },
  { "sku": "A101", "name": "Gadget", "price": 14 },
  { "sku": "A102", "name": "Gizmo", "price": 21.75 }
]

Output

skunameprice
A100Widget9.5
A101Gadget14
A102Gizmo21.75

A 3-record JSON array converted into a 3-column grid.

Frequently asked questions

Is my JSON sent anywhere?

No. Pasted JSON and uploaded files are both read and converted entirely on your device - nothing is sent to a server. Turn off your Wi-Fi after the page loads and it still works. This page loads 10KB of JavaScript, gzipped - about what your browser's network tab will show for this page's own scripts.

What JSON shape does this expect?

A top-level array of objects, like [ {"name": "Coffee", "price": 4.50}, {"name": "Tea", "price": 3.25} ]. A single object, or an array of anything else (numbers, strings), isn’t rejected outright (each non-object item just becomes a single-column row named "value"), but an array of flat objects is what produces the most useful spreadsheet.

What happens to nested objects and arrays?

A nested object is flattened into dot-notation columns - {"address": {"city": "Reno"}} becomes a column named address.city. A nested array is kept as-is, written into its cell as compact JSON text (e.g. ["red","blue"]), rather than expanded into extra columns - that keeps the column count predictable no matter how many items a nested array happens to have.

What if different objects in the array have different fields?

Every field seen across every object gets its own column, in the order it first appears. An object missing a given field just gets a blank cell there, rather than shifting the other columns out of place.

Is the CSV safe to open in Excel or Sheets?

Yes - any cell value that would otherwise be interpreted as a spreadsheet formula (starting with =, +, @, or a tab) is automatically neutralized with a leading quote before download, the same protection used across every CSV export on this site.

Files are processed locally in your browser and never uploaded. Read more on the privacy page.