JSON to CSV
Convert a JSON array of objects to CSV. Header row auto-generated from keys.
ConvertJSONCSVFree to use
Delimiter (output)
0 / 500,000
Try It Out
How to use
- Paste your JSON array. Array of objects with consistent keys.
- Copy the CSV. Header row + data rows.
Common use cases
- Exporting API data to spreadsheets
- Preparing JSON for BI tool ingestion
- Creating CSV fixtures from JSON responses
Frequently asked questions
- How is the CSV header row determined?
- The keys of the first object in the JSON array become the column headers. If your objects have varying keys, the union of all keys is used; missing values become empty cells.
- Can I pick a custom delimiter?
- Yes. Choose between comma (default), tab (TSV), semicolon (common in EU locales), or pipe. Pick the delimiter your downstream tool expects.
- How are nested objects handled?
- Nested values are flattened into JSON-encoded strings within the cell, so the row stays a single line. For deep transformation, flatten the JSON yourself first or use a dedicated jq-style tool.
- Are special characters in field values escaped?
- Yes. RFC 4180 quoting is applied: any field containing the delimiter, a double quote, or a newline is wrapped in double quotes, and embedded quotes are doubled (").
- What if my JSON is a single object instead of an array?
- A single object is treated as a one-row array, so the output has one header line plus one data row. Wrap multiple objects in [\u2026] before pasting if you want a multi-row CSV.
- Does the conversion happen in the browser?
- Yes. Conversion uses PapaParse locally; nothing is uploaded.
Related tools
How to use
- Paste your JSON array. Array of objects with consistent keys.
- Copy the CSV. Header row + data rows.
Common use cases
- Exporting API data to spreadsheets
- Preparing JSON for BI tool ingestion
- Creating CSV fixtures from JSON responses
Frequently asked questions
- How is the CSV header row determined?
- The keys of the first object in the JSON array become the column headers. If your objects have varying keys, the union of all keys is used; missing values become empty cells.
- Can I pick a custom delimiter?
- Yes. Choose between comma (default), tab (TSV), semicolon (common in EU locales), or pipe. Pick the delimiter your downstream tool expects.
- How are nested objects handled?
- Nested values are flattened into JSON-encoded strings within the cell, so the row stays a single line. For deep transformation, flatten the JSON yourself first or use a dedicated jq-style tool.
- Are special characters in field values escaped?
- Yes. RFC 4180 quoting is applied: any field containing the delimiter, a double quote, or a newline is wrapped in double quotes, and embedded quotes are doubled (").
- What if my JSON is a single object instead of an array?
- A single object is treated as a one-row array, so the output has one header line plus one data row. Wrap multiple objects in [\u2026] before pasting if you want a multi-row CSV.
- Does the conversion happen in the browser?
- Yes. Conversion uses PapaParse locally; nothing is uploaded.