Turn a JSON file or pasted JSON into a CSV spreadsheet. Choose a JSON array path, flatten nested fields, preview the columns and export CSV or XLSX locally.
Processed in your browserNo account requiredJSON field mappingIncomplete exports are blocked
Switching direction clears the current input, settings and result, and cancels any running operation. Download anything you need first.
Open or paste JSON, then export CSV or XLSX.
CSV export options
Drop a file, paste data, load a CORS-enabled URL, or try the sample.
Rows0
Columns0
EncodingAuto
DelimiterAuto
Issue groups0
Open a data file to start
The parser runs off the main thread. Once loaded, you can search, sort, validate, repair and export without an account.
Map JSON records to CSV columns without ambiguous fields
First decide what counts as one record. A root array supplies one record per item; a root object supplies one record. Leave the array path empty for either case. For a wrapped API response, enter the property path to its record array, such asresults.items. The path uses dot-separated property names, not JSONPath expressions such as $.results[*].
Choose results.items, enable flattening and keep arrays as JSON. The customer object becomes a customer.name column. The tags array occupies one cell, with its JSON quotes escaped for the surrounding CSV:
id,customer.name,tags
001,Ada,"[""new"",""vip""]"
Turning flattening off keeps the customer object as JSON text in acustomer column. With flattening enabled, Join arrays changes these tags to new, vip. Joining is convenient for display but cannot reliably reconstruct arrays whose values contain commas. When flattening is off, nested arrays remain JSON text regardless of the array setting.
Try three common input shapes
The example buttons in the tool load these exact synthetic records. Each example resets the array path, enables flattening and keeps arrays as JSON. The CSV shown here is built with the same field-mapping function as the converter.
Columns are collected as fields are encountered. If a later record addsactive, earlier records receive an empty cell in that column. Missing properties, JSON null and an empty string all become empty CSV fields; CSV output does not preserve the distinction. Boolean values become the texttrue or false.
Arrays of primitives use a value column. A root matrix such as[[1,2],[3,4]] produces two rows containing array text, not two spreadsheet columns. Numbers are read by JavaScript's JSON parser, so supply long identifiers as quoted strings before importing; already-rounded numeric values cannot be recovered.
Both paths would create customer.name. The converter rejects that ambiguity instead of overwriting a value, including when the conflicting paths occur in different records. Rename a source key or turn off flattening and inspect the resulting columns. Empty or whitespace-only output field names are also rejected. A failed JSON import clears the previous dataset so it cannot be downloaded accidentally.
Choose CSV or XLSX for the destination
Choose CSV for a system that expects delimited text. Commas, quotation marks and embedded line breaks are escaped during export. Choose XLSX for a workbook: cells are exported as text, so quoted identifiers such as 00123 remain strings. CSV itself has no cell types; Excel may reinterpret an identifier when opening a CSV even if it is quoted. UTF-8 BOM can help Excel recognize encoding, but does not control its number conversion.
What this converter does not do
It does not explode an array of line items into additional rows. Select the array you want as records, or reshape it before importing when you need parent fields repeated on each child row.
It accepts standard JSON, not JSON Lines, JavaScript object literals, comments or trailing commas. Invalid input must be corrected before conversion.
It does not stream arbitrary-size JSON. The full JSON document is read into memory and parsed in a worker before records are retained. The 250,000-record export limit is not a guarantee that a large or deeply nested file will fit in your browser.
It does not recover precision already lost from unquoted large numbers. Ask the source system to serialize account numbers and long IDs as JSON strings before conversion.
If the browser cannot handle an export, request smaller record batches from the source. Do not split JSON at arbitrary line breaks: those boundaries need not form valid documents. Cancel an in-progress operation before trying a smaller input.
Check the mapping before handing off the file
Compare the number of rows with the selected array length, and inspect records with missing nested properties. The workbench retains up to 250,000 records and blocks export for larger preview-only inputs. Use thenested JSON guide anddownloadable JSON example to check a mapping. For the reverse workflow, CSV to JSON provides explicit type and empty-value settings; CSV Validator checks the structure of a CSV received from another system.
What this tool does
JSON to CSV converter for nested records
The converter validates JSON, resolves an optional dot-separated array path and converts each selected object into a row. Nested keys can use dot notation, while arrays can remain JSON strings or be joined for simpler spreadsheets.
How to use it
Paste or open JSON. Leave Array path empty for a root array or object, or enter a path such as results.items for nested records.
Choose whether to flatten objects and how arrays inside records should be represented.
Check the column preview, then download CSV or XLSX.
Common tasks
Flatten nested JSON objects into dot-notation CSV columns.
Convert a JSON array—or an array at a path such as results.items—to CSV.
Keep nested arrays as JSON text or join simple values before exporting.
Privacy and local processing
Local files are read by a dedicated browser worker and are not uploaded to an application server. File contents and filenames are not included in analytics events. Loading a public URL is an explicit direct request from your browser and may fail when the remote server blocks CORS.
Supported edge cases
A root object is treated as one record when no array path is supplied.
Missing keys become empty cells while keys found in later records still become columns.
Nested arrays are serialized as JSON by default to avoid losing their structure.
Frequently asked questions
Can I convert an API JSON response to a CSV spreadsheet?
Yes. Save or paste the JSON response, then select the records array using a path such as results.items. Each object becomes a row; flattening turns nested properties into columns such as customer.name. This converts the response you provide rather than connecting to an authenticated API.
How do I convert a nested JSON array?
Enter the property path to the array, for example results.items, and keep flattening enabled to create columns such as customer.name.
What happens to arrays inside each object?
They remain valid JSON text by default. With flattening enabled, you can join simple array values with commas. With flattening off, nested arrays and objects stay as JSON text.
Can I export the converted JSON directly to Excel?
Yes. After previewing the mapping, choose XLSX to create a local Excel workbook.