Check & prepare data

JSON to CSV: Convert an Array of Objects

Convert a JSON array of objects into a CSV with columns from their combined keys.

Work stays in your browserLocal tool processing

Choose a JSON array of objects to create a downloadable CSV.

Private by designYour input stays on your device. Processing happens in this browser.
Your workspace

Start with a file

JSON or TXT · UTF-8 only · up to 2 MB. Original number/string tokens are retained; validation happens when you run. Drop here, or use the file picker.

Paste JSON instead (optional)

Optional alternative to a file. Editing this text removes its selected file; source text is never reformatted during loading.

Conversion settings

Ctrl / ⌘ + Enter to run
Result

A clear result starts here

Run the tool to see your output here.

Try the example to explore how it works.
What to know about this tool

2 MB, 200 nesting levels; a nonempty array of objects required. Export capped at 50,000 rows, 200 columns, 1,000,000 cells and a conservative 20 MB. Duplicate properties and unsafe numeric conversion are rejected. Nested values become JSON strings; absent/null values become blank CSV cells. Formula-like cells get an apostrophe.

Clear this workspace?

Your inputs, selected files, and current result will be cleared.

Get a result you can use

Instructions and examples

From input to output

  1. Choose or paste a nonempty JSON array of objects.
  2. Select Convert to CSV.
  3. Inspect the combined headers and rows before downloading the CSV.

Settings and result behavior

  • Headers are the union of properties in first-seen order. Missing and null values become blank cells.
  • Nested objects/arrays become JSON text inside a cell. This is not recursive flattening into separate columns.
  • Duplicate properties and numbers that would lose precision are rejected. Formula-like output cells get an apostrophe.

A worked example

Input
[{"id":"001","name":"Ada"},{"id":"002","name":"Lin"}]
Settings
No mapping or type controls.
Expected result
id,name
001,Ada
002,Lin

Supported input and limits

Choose a UTF-8 JSON or TXT file, or open “Paste JSON instead”. Use standard JSON with double-quoted strings, no comments and no trailing commas. Maximum 50,000 rows, 200 distinct columns, 1,000,000 cells and conservative 20 MB CSV output.

2 MB, 200 nesting levels; a nonempty array of objects required. Export capped at 50,000 rows, 200 columns, 1,000,000 cells and a conservative 20 MB. Duplicate properties and unsafe numeric conversion are rejected. Nested values become JSON strings; absent/null values become blank CSV cells. Formula-like cells get an apostrophe.

If the result is unexpected

  • A top-level object is not accepted; supply an array of records with at least one named property.
  • For an unsafe number, obtain a source representation as a quoted string if that matches its intended meaning. Do not round an identifier to pass validation.

Check before using the result

Check sparse records and nested fields. Import IDs as text; spreadsheet type inference can still remove zeros or interpret dates.

Report a problem with this tool. Include a nonsensitive example and your browser details.

Questions about this tool

Can I convert any JSON document to CSV?

Use a nonempty array of objects within the listed limits. Nested values become JSON strings; absent or null values become blank CSV cells. Review exported cells and spreadsheet formula protection.