JSON to CSV Converter

Turn a JSON array of objects into a CSV file that opens in Excel, Google Sheets or any database import tool. Nested objects are flattened into dotted column names, the header is the union of every key found, fields are quoted according to RFC 4180, and risky cells are neutralised so a spreadsheet cannot run them as formulas.

Data Formats Runs in your browser

Convert JSON to CSV

address.city becomes its own column. If off, nested objects are written as JSON text.
Text cells that start with = + - or @ get a leading single quote so Excel or Sheets will not run them as formulas.

How to Use the JSON to CSV

  1. Paste a JSON array of objects (an object of objects or a single object also works).
  2. Choose the delimiter and how arrays and nested objects should be handled.
  3. Keep Protect against spreadsheet formula injection ticked unless you need the raw text.
  4. Press Convert, check the preview table, then copy or download the CSV.

About This Tool

Analysts moving API data into a spreadsheet, developers preparing import files, and support staff turning exported JSON into something they can sort and filter.

Input: JSON (array of objects)  ·  Output: CSV.

Features and Limitations

Features

  • Header is the union of all keys, so records with different fields still line up.
  • Nested objects become dotted columns such as address.city; arrays can be spread (tags.0, tags.1) or kept as JSON text.
  • RFC 4180 quoting: fields containing the delimiter, quotes or line breaks are quoted and quotes are doubled.
  • Formula injection guard (on by default) and a preview table of the first 20 rows.
  • Large numbers keep their original digits instead of being rounded.

Limitations

  • Very deeply nested or irregular JSON produces many sparse columns.
  • The injection guard prefixes text that starts with = + - or @ with a single quote. Pure numbers such as -5 are left alone, but text like “+1 555 0100” gets the quote.
  • Output uses line feed (LF) line endings, which every common spreadsheet accepts.
  • Arrays of different lengths create columns for the longest array; shorter records leave those cells empty.
  • Results are computed in your browser; nothing you enter is sent to a server.

Example

[{"id":1,"address":{"city":"London"}},{"id":2,"note":"a, b"}] becomes a header id,address.city,note and rows 1,London, and 2,,"a, b".

Frequently Asked Questions

What JSON shapes can it convert?

An array of objects is the normal case. An object whose values are all objects becomes one row per key (with a _key column), and a single object becomes one row. An array of plain values becomes a single value column.

What is formula injection and why is the guard on?

If a cell starts with = + - or @, Excel and Google Sheets can interpret it as a formula, which attackers abuse to leak data or run commands. Prefixing a single quote makes the cell plain text. Turn the option off only if you trust the data and need the exact text.

How are nested values handled?

With flattening on, {"a":{"b":1}} gives a column a.b. Arrays become a.0, a.1 and so on, or one JSON-text cell if you choose that option. Empty objects and arrays are written as {} and [].

Why do some cells use quotes?

RFC 4180 requires quotes around fields that contain the delimiter, a double quote or a line break. A double quote inside a field is doubled.

Will Excel open the file correctly?

Usually yes. For files with accented characters, import the CSV as UTF-8 (Data, From Text/CSV) or open it in Google Sheets, because older Excel versions guess the encoding.

Related Tools

More like this: all Data Formats tools, all Developer & Web tools or the TinySandy home page.