Formatter Validator Minifier JSON ↔ YAML JSON → CSV JSON ↔ XML JSON Diff Schema Validator JSONPath Tester JWT Decoder More Tools Blog FAQ
Arrays of objects → spreadsheet rows · RFC 4180

JSON CSV Converter

Convert a JSON array of objects into CSV ready for Excel, Google Sheets, or any data tool. Handles nested objects (flattened with dot notation), missing fields, custom separators, and proper escaping of special characters.

Input JSON (array of objects)
CSV output
CSV will appear here
Why convert JSON to CSV?

Why convert JSON to CSV?

CSV (Comma-Separated Values) is the lingua franca of data analysis. Excel, Google Sheets, Numbers, Tableau, R, pandas, SPSS, and every other spreadsheet or stats tool reads CSV natively. JSON, by contrast, is the standard for APIs and structured data interchange.

Converting JSON to CSV bridges these two worlds. When you have data from an API or NoSQL database in JSON form and need to analyze it in a spreadsheet, this is the conversion you need. Common scenarios: exporting data for a non-technical stakeholder, loading API responses into a BI tool, importing into a relational database, or just sorting and filtering in Excel.

Handling nested objects: dot-notation flattening

Handling nested objects: dot-notation flattening

CSV is a flat format — each row is a list of values, no nesting. JSON, by contrast, supports arbitrary nesting. Our converter handles this by flattening nested objects using dot notation:

[
  {
    "id": 1,
    "name": "Alice",
    "address": {
      "city": "NYC",
      "zip": "10001"
    }
  }
]

becomes:

id,name,address.city,address.zip
1,Alice,NYC,10001

Arrays inside objects are preserved as JSON strings in the cell — keeping the information intact without trying to expand into multiple rows (which would lose the row-to-row correspondence).

Use cases for JSON-to-CSV conversion

Use cases for JSON-to-CSV conversion

📊 Excel analysis

Pull data from an API, convert to CSV, drop into Excel for pivoting, charting, and ad-hoc analysis.

📈 BI tools

Tableau, Power BI, Looker — all accept CSV directly. Convert JSON exports to feed into BI dashboards.

🗄 Database imports

PostgreSQL, MySQL, SQLite all support CSV import. Convert JSON data to CSV to load with COPY FROM or LOAD DATA INFILE.

📧 Email reports

Stakeholders who don't know JSON can read CSV directly in their email client or attached spreadsheet.

🧪 Data science

pandas.read_csv() is the most common way to load data into Python. R's read.csv() is similar.

🔄 Migration

When migrating from a JSON-based system to a tabular one, CSV is the intermediate format that travels through almost any pipeline.

Common questions

FAQ — Json To Csv

What's the expected JSON structure for CSV conversion?
A JSON array of objects, like [{"name":"Alice","age":30},{"name":"Bob","age":25}]. Each object becomes one row. The union of all keys across all objects becomes the CSV columns. If different objects have different keys, missing values become empty cells.
How are nested objects handled?
Flattened with dot notation. {"user":{"name":"Alice"}} becomes a column called user.name. Multi-level nesting works the same way: {"a":{"b":{"c":1}}} produces a column a.b.c.
What about arrays inside objects?
Arrays are preserved as JSON strings in a single cell. {"tags":["a","b"]} produces a cell containing ["a","b"]. We don't expand arrays into multiple rows because that would break the row-to-object correspondence — but if you need that, post-process the CSV in Excel or pandas.
How are commas inside values handled?
Per RFC 4180: values containing the separator, double quotes, or newlines are wrapped in double quotes, and internal double quotes are escaped by doubling them. So Hello, World becomes "Hello, World" in the CSV.
Can I use a different separator?
Yes — choose comma, semicolon, tab, or pipe. Semicolon is the standard CSV separator in many European locales (because comma is the decimal separator). Tab gives you TSV (Tab-Separated Values), which avoids most escaping headaches.
Will the CSV open correctly in Excel?
Yes — the output is RFC 4180 compliant and opens in Excel, Google Sheets, Numbers, and LibreOffice. For non-English locales using semicolon as separator, change the separator setting accordingly. For Excel, you may also need to save the file as UTF-8 with BOM for non-ASCII characters to display correctly — our download includes the BOM automatically.
Can I convert CSV back to JSON?
Not with this tool — but every spreadsheet program can save as JSON via export, and most programming languages have a one-liner: pandas.read_csv('file.csv').to_dict('records') in Python, or papaparse.parse(csv, {header: true}).data in JavaScript.
What if my JSON isn't an array?
The converter expects an array as the top-level value. If you have a single object, wrap it in brackets: [{...}]. If you have an object whose values are objects, you may need to transform first — for example, Object.values(yourObject) in JavaScript or list(your_dict.values()) in Python.
How big a JSON file can I convert?
Up to about 50 MB comfortably. For larger files, use a streaming command-line tool like jq -r 'map([.field1,.field2]|@csv)[]' file.json > file.csv.
Does the CSV preserve order of fields?
Yes. We preserve insertion order of keys from the first object, then add any new keys from later objects in the order they're encountered. If you need a specific column order, sort the keys before conversion or rearrange the columns in your spreadsheet after.
Our Network