JSON to CSV Converter
Turn JSON records from an API or exported file into a spreadsheet-ready CSV. Combine keys from all records, preserve text codes, and download without uploading the source.
File processing runs in a separate editor frame. The advertising scripts on this page cannot read or modify the editor contents.
Ads are separate from file processing. You do not need to click an ad to use or download a tool result.
300 × 250 display advertisement
Sponsored recommendations
How to use this tool
- Paste a JSON array of objects, for example [{"name":"Alex","city":"Seoul"}], or open a local JSON file.
- Choose comma, semicolon or tab as the output delimiter. Comma is the usual CSV default.
- Keep spreadsheet formula protection on for files you might open in Excel or similar software.
- Process, inspect the first rows, and download the CSV. No document is sent to a server.
Examples
Example input
Expected result
What the tool changes (and what it does not)
JSON APIs commonly return an array where each element is an object. A CSV table needs one header row and consistent columns. This converter gathers field names across all records, in the order in which they first appear. If later records have extra fields, those fields become new columns. Records that do not have a value for a column get an empty CSV cell.
Every output value is written as text. For example, an SKU represented in valid JSON as the string "0012" stays "0012" in CSV. A numeric JSON value such as 12.5 becomes the characters 12.5. CSV has no built-in type system, so spreadsheet applications may interpret values according to their own import rules. Import text identifiers as Text if leading zeros matter.
JSON arrays and objects nested inside a cell are preserved as compact JSON text rather than being expanded into surprise columns. This makes the converter predictable for occasional nested values; it is not a general-purpose JSON path flattener. If your source is one object rather than an array of objects, wrap it in [ and ] before conversion.
If formula protection is enabled, cell values that begin with spreadsheet formula operators (=, +, -, @) are prefixed with an apostrophe before CSV output, even after leading spaces. Potentially dangerous field names receive the same protection in the header row. If you are building a machine-readable pipeline that needs the exact original characters, switch protection off and ensure downstream applications treat fields as data.
Missing fields and JSON null both map to empty CSV cells. JSON numeric values beyond JavaScript's safe integer range may lose precision during standard JSON parsing: supply very long identifiers as JSON strings in the source file. The browser limits uploads to 2 MB and conversions to 10,000 records and 200 columns to prevent unexpected memory use.
Frequently asked questions
Does it combine keys from different JSON records?
Yes. The header is the union of keys from all objects, retaining their first-appearance order. Missing values become empty cells.
Can it convert deeply nested JSON to many spreadsheet columns?
Not automatically. Nested objects and arrays remain JSON strings in a single cell. Flatten the source structure before converting if you need separate columns.
Does the converter upload my JSON?
No. The JSON editor runs locally within a separate browser frame; advertising scripts on the surrounding page cannot read the editor.
Why is an apostrophe added to some CSV values?
Spreadsheet formula protection is enabled. It helps prevent strings beginning with =, +, - or @ from being interpreted as spreadsheet formulas.