Convert JSON arrays into CSV instantly
Paste JSON on the left and copy CSV on the right — all in your browser

The JSON to CSV converter turns a JSON array of objects into a CSV table. It automatically detects column headers by scanning keys across the whole array, then produces one header row and one row per object.
Who typically uses it?
Privacy note
All conversion runs locally in your browser. If you’re working with sensitive data, you can still use this tool—just avoid sharing URLs with embedded input.
If you’re juggling formats, pairing this with our JSON to YAML converter or YAML to JSON converter can make debugging and editing much easier.
Worked example (header detection)
Suppose your API returns two records:
[
{ "id": 1, "name": "Ada" },
{ "id": 2, "name": "Linus", "team": "Kernel" }
]The tool builds the header set from all keys, so: and columns are produced.
A typical CSV output will look like:
id,name,team 1,Ada, 2,Linus,Kernel
Notice how the first row has an empty value for . That’s expected when a key is missing in some objects.
If the output is blank
Your JSON may be valid but not an array of objects. Wrap a single object as an array, like .
1) Exporting API data to a spreadsheet
Background: You fetched a list of issues from an API and want a quick pivot table in Sheets.
Input JSON (simplified):
[
{ "id": 101, "status": "open", "assignee": "Sam" },
{ "id": 102, "status": "closed", "assignee": "Alex" }
]Result: a CSV table with columns. You can paste it directly into Sheets.
Tip: if the API returns YAML in logs, convert it first using our YAML to JSON converter.
2) Creating an import file (CRM / ticketing)
Background: Your tool accepts CSV imports, but your source data is JSON.
Example input:
[
{ "email": "[email protected]", "plan": "Pro" },
{ "email": "[email protected]", "plan": "Free" }
]Result CSV gives you two columns. In symbols: .
How to apply it: save as and import.
3) Sanitizing and sharing a non-sensitive sample
Background: You want to share a minimal reproduction with teammates. Convert to CSV so it’s easy to read and compare.
Input values are small by design; if you share a URL with results, remember the query-string limit. If you need safer sharing, share a file instead.
You need a quick spreadsheet view
You’re debugging inconsistent objects
You want local-only processing
You’re moving between formats
It’s useful, but not always the right tool
You’re preparing an import template
Keep your JSON “row-like”
CSV works best when each object represents one row and each key is a column. If you have nested objects, convert/flatten them before exporting.
Watch out for commas and line breaks
Values containing commas are quoted in the output. Line breaks are escaped as and , which avoids breaking rows in most spreadsheet pastes.
Convert first, then export
If your source is XML or YAML, convert it to JSON first with XML to JSON or YAML to JSON, then paste it here for CSV output.
Think of your JSON input as a list of records: . Each is an object with key-value pairs.
Header detection
The converter builds the header set by taking the union of keys across all objects:
The number of columns is simply .
Row construction
For each object and each header , the cell value is: .
Missing keys produce empty cells. A JSON becomes the text in CSV.
CSV is a format, not a schema
CSV doesn’t tell you column types; everything looks like text at first. If you need strict typing, store the original JSON as well.
JSON5 parsing
The parser is forgiving (comments and trailing commas may work), which is handy when you copy from logs or config-like JSON.
If you need to view JSON more comfortably before exporting, try our JSON diff tool for side-by-side comparisons.
The input must be parseable JSON/JSON5. Double-check missing quotes, unclosed braces, and trailing characters. If you copied from YAML, convert it first with our YAML to JSON converter.
This tool expects . If you have a single object, wrap it as an array: .
No—nested objects stay as JavaScript objects, which typically become if coerced. For nested data, flatten upstream or export a different format.
Values containing commas are quoted. Quotes are escaped, and line breaks are replaced with and .
Yes, but only if you check “share with results”. If the data is sensitive, leave that unchecked and share the page URL only.
Not a full CSV spec implementation
CSV has edge cases (different delimiters, embedded quotes, Excel quirks). This tool targets the common “copy/paste” workflow.
Nested or relational data may not fit
If your JSON contains arrays-in-arrays or nested objects, a single table may be the wrong representation. Consider exporting multiple tables or using a database.
External references
For day-to-day use, the “best” CSV handling depends on your destination tool (Excel vs a database import). If you need stricter handling, consider a dedicated CSV library in your pipeline.
Parse and decode your JSON Web Token (JWT) and display its content. All computation runs locally in your browser.
Transform text into the NATO phonetic alphabet for oral transmission. Convert letters A–Z into Alpha/Bravo/Charlie… and copy instantly.
Convert text to ASCII (8-bit) binary and convert ASCII binary back to text. Clean input automatically and copy results instantly.
Convert text to Unicode decimal HTML entities (e.g., A) and convert them back to text. Runs locally in your browser with one-click copy.
Escape and unescape HTML entities for <, >, &, ", and ’. Runs locally in your browser with instant copy.
Edit rich text in a simple WYSIWYG editor and copy Prettier-formatted HTML instantly. Runs locally in your browser.