JSON to CSV Converter

Convert JSON to CSV online. Flatten nested objects into dotted columns, control how arrays expand, and download clean, Excel-ready CSV — all in your browser.

All conversion happens locally in your browser. No data is sent to any server. Your JSON stays completely private.

What It Does

This tool turns JSON into a flat CSV table you can open in a spreadsheet or import into a database. The natural shape for CSV is an array of objects: each object becomes a row, and each key becomes a column. Real-world JSON is rarely that tidy, though — it nests objects inside objects and buries lists inside fields. So the converter flattens nested objects into dotted column names (order.customer.email) and lets you decide how arrays should be unpacked. It also inspects the result and tells you what it produced: how many rows and columns, which columns were created by flattening, how your arrays were expanded, and whether some rows were missing fields. The conversion is strict about correctness — values containing commas, quotes, or newlines are quoted and escaped per the CSV standard so your columns never drift.

When to Use It

  • An API returned a JSON array and you need it as a spreadsheet to share with a non-technical colleague or drop into Excel.
  • You're importing data into a database or BI tool that expects CSV and you want nested fields flattened into clean, named columns.
  • You exported records from one system as JSON and the next system only accepts CSV or TSV.
  • You want to eyeball a large JSON array as a table to spot missing fields, inconsistent keys, or unexpected array values.

Worked Examples

[{"name":"Ada","age":36},{"name":"Alan","age":41}]

The simplest case: an array of flat objects. Each object becomes a row and the keys (name, age) become the two columns — a clean 2-row CSV with a header.

[{"id":1,"user":{"name":"Ada","city":"London"}},{"id":2,"user":{"name":"Alan"}}]

Nested objects are flattened to dotted columns: id, user.name, user.city. The second row has no city, so that cell is left empty and the dataset is flagged as ragged.

[{"name":"Ada","tags":["math","logic"]},{"name":"Alan","tags":["code"]}]

Shows how arrays are expanded. With 'Index columns' the tags list becomes tags.0 and tags.1; switch to 'Join values' to get a single tags cell like "math;logic" instead.

Features

Array-of-objects to CSV in real time
Nested object flattening with dot notation
Three array-expansion modes (index columns
join values
JSON string)
Union-of-keys columns so no field is dropped
Ragged-row detection for missing fields
RFC 4180 quoting and escaping
Selectable delimiter (comma
semicolon
tab
pipe)
Optional header row
Inferred-column and row-count insights
File upload and drag-and-drop
Copy and download the CSV
Browser-only processing with no server uploads

How to Use

1. Paste or upload a JSON array of objects in the input area. 2. Choose whether to flatten nested objects and how arrays should be expanded. 3. Pick a delimiter and whether to include a header row. 4. The CSV appears instantly, with a panel describing the inferred columns and any warnings. 5. Click Copy or Download to save the result.

Common Mistakes

  • Feeding in a single object and expecting many rows. One JSON object is one row. To get multiple rows you need an array of objects — the tool will still convert a lone object, but it becomes a single-row CSV.
  • Assuming every object has the same keys. Optional or inconsistent fields produce empty cells; the tool flags this as 'ragged' so you can decide whether that's expected before importing.
  • Opening comma-delimited CSV in a European locale. Where the comma is the decimal separator, a spreadsheet may push everything into one column — switch the delimiter to semicolon or tab instead.
  • Forgetting that arrays of objects inside a row can't become tidy columns. A list of objects is expanded by index (items.0.price) or kept as JSON; if you need those as their own rows, extract that array and convert it separately.

Frequently Asked Questions

Explore related topics

#Developer #JSON #Converter