/

JSON to CSV

Processed Client Side

Flatten a JSON array of objects into clean, downloadable CSV — nested keys become dotted columns.

JSON · 5 lines
5 lines · 228 chars
Length: 228Lines: 5Size: 228 BytesCursor: 1:1
CSV
CSV3 rows · 4 cols
Length: 107Lines: 4Size: 107 BytesCursor: 1:1

Bookmark this tool now — skip the search next time you need it.

About JSON to CSV

This tool runs entirely in your browser. Whatever you paste is processed on your own device and is never uploaded, logged, or sent to any server.

Turn a JSON array of objects into a CSV file you can open in Excel, Google Sheets, or Numbers. The converter reads every object in the array, collects the union of all their keys so no column is silently dropped, and writes a header row followed by one row per record. Nested objects and arrays are flattened into dotted column names by default, so a record with an address object becomes address.city and address.zip columns rather than an unreadable blob of JSON inside a single cell. Values containing your delimiter, a quote, or a newline are quoted and escaped to the CSV convention, so the output survives a round-trip through a spreadsheet.

Key features

  • Converts a JSON array of objects into standards-compliant CSV with correct quoting and escaping
  • Column set is the union of every key across every record — objects with missing fields get empty cells, not shifted columns
  • Flatten nested option turns nested objects and arrays into dotted column names such as address.city
  • Four delimiters: comma, semicolon, tab, and pipe — semicolon and tab are what European Excel and TSV workflows expect
  • Optional header row for pipelines that supply their own column names
  • Values containing the delimiter, double quotes, or line breaks are automatically quoted and escaped
  • Syntax-highlighted JSON input, so you can spot a malformed record before converting
  • One-click copy of the CSV, ready to paste straight into a spreadsheet
  • Entirely client-side — customer records and exports never leave your machine

How to use it

  1. Paste a JSON array of objects into the input pane.
  2. Choose the delimiter your target application expects — comma for most tools, semicolon for Excel in many European locales.
  3. Leave Flatten nested on to expand nested objects into dotted columns, or turn it off to keep them as JSON text in one cell.
  4. Toggle Header row off if the receiving system supplies its own column names.
  5. Click Convert, check the column layout in the output pane, then click Copy CSV.

Tips & common mistakes

  • The input has to be an array at the root. A single object works better with a JSON viewer; wrap it in square brackets first if you really want a one-row CSV.
  • If Excel splits your file into one column, its locale expects semicolons. Switch the delimiter to semicolon and re-convert rather than fighting the import wizard.
  • Turn Flatten nested off when a nested array is genuinely list data you want to keep intact for a later import — flattened, a five-item array becomes five sparse columns.
  • Records with different key sets are fine: the union of keys becomes the header and missing values are written as empty cells, so columns stay aligned.
  • Long numeric strings such as IDs, phone numbers, and postcodes are mangled by spreadsheets into scientific notation. Import the CSV as text rather than double-clicking it if those columns matter.
  • CSV has no type system. Everything arrives as text on the other side, which is why the reverse trip through CSV to JSON offers a type-inference option.
  • Browse the result as a spreadsheet-style grid before you download it with the CSV Viewer & Editor.

Related tools

Browse all 24 JSON tools

Frequently asked questions

10

Paste a JSON array of objects into the input pane and press Convert. The tool builds a CSV with a header row that you can download as a .csv file or copy.

With "Flatten nested" enabled, nested objects are flattened into dot-notation columns — so { "address": { "city": "NYC" } } becomes a column named address.city.

Yes — choose comma, semicolon, tab, or pipe. Semicolon is useful for opening the file in European locales of Excel that expect it.

Any field containing the delimiter, a double quote, or a line break is automatically wrapped in double quotes and escaped following the RFC 4180 CSV convention.

A single object is treated as a one-row table. To produce multiple rows, wrap your records in a JSON array.

The header is built from the union of every key found across every record, so no column is dropped. Records missing a given key get an empty cell in that column, which keeps every row aligned.

Excel in many European locales expects semicolons rather than commas as the separator. Switch the delimiter to semicolon and convert again, which is more reliable than working through the import wizard.

Yes. Turn off the Header row switch and the output starts directly with data, which is what some import pipelines and bulk loaders expect.

Nested objects become dotted column names — an address object becomes address.city and address.zip columns. With it off, the nested value is written into a single cell as JSON text instead.

That is the spreadsheet, not the CSV. Excel and Sheets convert long numeric strings automatically. Import the file and set those columns to Text rather than opening it by double-clicking.