JSON to CSV Converter

Paste JSON or drop a .json file. Nested objects become dotted columns, and you get a CSV you can open straight away.

Drop your JSON file here or click to choose a file — or paste your data below

How the shapes are handled

  • Nested objects become columns. A record like {"user":{"name":"Ana"}} yields a column named user.name, so depth does not cost you a column.
  • Records with different keys line up. If one object has a field the others lack, it still gets its own column and the missing cells are left empty, rather than shifting everything along.
  • An array wrapped in a key is found. API responses shaped like {"results":[ ... ]} are unwrapped automatically instead of producing a single useless row.
  • Column order follows the data. Columns appear in the order the keys first appear, so the CSV reads like the JSON did.
  • Arrays of arrays work too. A plain [[1,2],[3,4]] is treated as rows without headers.
  • Deep or exotic values are preserved. Anything too deeply nested to flatten sensibly is kept as its JSON text rather than silently dropped.

Is my file uploaded anywhere?

No. This page has no server side: the file is read and written back by JavaScript running on your own machine. You can check it by opening the page, disconnecting from the network, and converting a file anyway.

Doing it in a spreadsheet instead

Excel can do this through Data → Get Data → From File → From JSON, which opens Power Query; you then have to expand each nested record by hand, one level at a time. Google Sheets has no JSON import at all without an add-on.