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.
Convert JSON to CSV
Where the error is
CSV
Preview (first rows)
Result
How to Use the JSON to CSV
- Paste a JSON array of objects (an object of objects or a single object also works).
- Choose the delimiter and how arrays and nested objects should be handled.
- Keep Protect against spreadsheet formula injection ticked unless you need the raw text.
- 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.