tigtools

JSON to CSV Converter

Paste a JSON array and get a CSV table you can open in Excel, Google Sheets or LibreOffice. Conversion happens in your browser.

Runs in your browser No sign-up

Delimiter

How to use it

  1. Paste a JSON array of objects, open a .json file, or press “Try an example”.
  2. Pick the delimiter your spreadsheet expects and how arrays inside objects should be written.
  3. Check the CSV preview. Each object is one row; nested fields become columns such as address.city.
  4. Copy the CSV or download it as a .csv file.

How it works

Every item of the top-level array becomes one row. The columns are the union of all keys, in the order they first appear, so objects with different fields still line up; a missing field or a null value gives an empty cell. Nested objects are flattened with dot paths: {"address": {"city": "Oslo"}} becomes a column named address.city. If the root is a single object, the result is one row. Arrays of plain values (such as [1, 2, 3]) produce a single column named value.

Arrays inside objects can be written three ways: as JSON text in one cell (["a","b"]), joined into one cell (a; b), or spread over numbered columns (tags.0, tags.1). Use the last option when every row has a similar, short list.

The output follows RFC 4180: a field is wrapped in double quotes when it contains the delimiter, a double quote or a line break, and quotes inside it are doubled. Rows end with CRLF line breaks. In many European locales Excel expects semicolons rather than commas, because the comma is the decimal separator. Excel may also reformat long numbers, leading zeros and date-like text when it opens a CSV file; import the file as text if exact values matter. Numbers beyond 2^53 lose precision when the JSON is parsed.

Examples

Exporting users from an API

An API returns [{"id":1,"name":"Ada","address":{"city":"London"}}, …]. The CSV has the columns id, name and address.city, ready to sort and filter in a spreadsheet.

Text with commas and quotes

A name such as Alan "AT" Turing becomes "Alan ""AT"" Turing" and a city such as Wilmslow, Cheshire is quoted, so spreadsheet programs keep each value in its own cell.

Opening in German or French Excel

Choose Semicolon as the delimiter and turn on the UTF-8 BOM. Excel then splits the columns correctly and shows characters such as ä and é without garbling.

Frequently asked questions

What happens to deeply nested JSON?

Nested objects are flattened at every depth into dot-path column names, for example order.customer.address.zip. Arrays follow the option you choose: JSON text, joined values, or one column per item.

Why are some cells empty?

A cell is empty when that object does not have the key, or when its value is null. Columns come from all objects together, so a key that only some objects have still gets a column.

Which delimiter should I use?

Comma is the standard. Use semicolon for Excel in locales that write decimals with a comma (much of Europe and Latin America), and tab when the data itself contains many commas or you want to paste it straight into a spreadsheet.

Can it convert CSV back to JSON?

Yes, with the CSV to JSON converter on this site. Note that flattening is not fully reversible: dot-path column names come back as plain keys like "address.city", not as nested objects.

Privacy

The conversion runs in your browser. Your JSON and the CSV result are not uploaded, stored or included in analytics.