Export JSON arrays to spreadsheet CSV locally

Flatten objects into dotted CSV columns identical to legacy FastMinify conversion rules. Nested structures become headings like parent.child.quantity.

Loading…
JSON → CSV — flattening rules
Same flattenObject strategy already shipped for years — now isolated on its own topical URL.

Developer notes

• Only objects or arrays-of-objects flatten predictably. • Single-key JSON/XML wrappers (e.g. `{ "orders": [ {...} ] }`) unwrap to row arrays automatically. • Primitive tops or heterogeneous arrays trigger guidance to reshape first. • On **/fr/** routes, CSV uses `;` between columns for European spreadsheet defaults (Numbers, Excel FR). • Split giant exports offline before expecting tab performance.

When teams pick this route

• QA merging webhook payloads into spreadsheets. • RevOps marrying CRM JSON blobs with CSV templates. • Support pairing tickets with summarized exports.

About these options

CSV exports: choose a delimiter (Auto follows locale — semicolon on /fr), RFC-minimal vs always-quoted fields, line endings, and whether to emit a header row. CSV imports: delimiter + whether row 1 holds column names (Auto delimiter follows locale only for convenience). JSON output (XML, YAML, or CSV sources): indentation (including compact one-line) and optional recursive key sort. JSON → XML: toggle pretty-printing and indent width. YAML output: indent width, readable vs tighter layout, and deterministic string quoting (there is no source YAML file to “preserve”). XML comments are not represented in the intermediate JSON tree.

Worked examples

Regional accounts tab

Sample input

[ { "id": 701, "account": {"name": "Nova", "tier": "enterprise"}, "active": true, "sessions": null }, { "id": 702, "account": {"name": "Pixel", "tier": "trial"}, "active": false, "sessions": 3 } ]

Sample output

id,active,sessions,account.name,account.tier 701,true,,Nova,enterprise 702,false,3,Pixel,trial

Single-key wrapper unwraps automatically

Sample input

{ "export": [ { "id": 701, "account": {"name": "Nova", "tier": "enterprise"}, "active": true, "sessions": null }, { "id": 702, "account": {"name": "Pixel", "tier": "trial"}, "active": false, "sessions": 3 } ] }

Sample output

id,active,sessions,account.name,account.tier 701,true,,Nova,enterprise 702,false,3,Pixel,trial

Navigate related converters

Need YAML manifests? Jump to JSON → YAML. Tightening JSON payloads? Refresh with our JSON minifier or revisit XML gateways at JSON → XML.

JSON → CSV FAQ

Privacy + ergonomics

"CSV conversion only supports objects" — meaning?

Top-level primitives lack column semantics — wrap them in keyed objects.

Commas embedded in strings?

Fields are quoted RFC4180-style when needed.

Row limits?

Browsers choke on mega CSV — chunk server-side workloads first.

Can I automate via API?

Not through FastMinify — replicate json-converter.ts locally for pipelines.

Looking for every converter, encoder, and minifier in one place? Developer tools hub Open the curated developer tools catalogue.

JSON to CSV Converter — Spreadsheet-Friendly Rows & Columns