JSON to CSV. Ready for rows.
Convert JSON records into CSV columns. Flatten nested objects and download a spreadsheet-friendly file.
Your workspace
JSONInput
Your JSON goes hereJSON editor. Tab inserts indentation. Shift plus Tab moves focus to the previous control.
Output
JSON{
"project": "jsonformatkit",
"description": "A little clarity for your data",
"version": "1.0.0",
"isAwesome": true,
"tools": [
"Format & validate",
"Convert & explore",
"Share something beautiful"
],
"settings": {
"indentation": 2,
"sortKeys": false,
"privacy": "Your data stays yours"
},
"madeWith": "care",
"nextBigIdea": null
}Object with 11 keys. All brackets, quotes, and commas are in their happy place.
Objects become rows; nested keys use dot paths. Arrays stay JSON inside cells. Null and missing cells are empty. Dots and backslashes in keys are escaped.
More than a pretty print.
Turn JSON objects into CSV rows and columns
A top-level JSON array becomes one CSV row per entry. Column headers are collected from all records, so properties that appear in later rows are included. A single top-level object produces one data row, making this useful for both individual records and small JSON exports.
Nested objects are flattened using dot-separated paths. For example, a nested user.name value becomes a user.name column. Literal dots and backslashes in property names are escaped to keep different paths distinct. Nested arrays stay as JSON text within a cell.
The converter quotes cells containing commas, quotes, or line breaks and doubles embedded quotation marks. Null and missing fields become empty cells. Formula protection is enabled by default and adds an apostrophe to string cells starting with spreadsheet formula operators. Downloaded CSV uses UTF-8 and CRLF row separators.
How to use JSON to CSV
- Paste an array of JSON records or upload your JSON file.
- Select Convert to CSV and review the flattened column headers.
- Leave formula protection enabled for spreadsheet imports, then download the CSV file.
Up to 2 MB of JSON and 100 nesting levels. URL imports require public HTTPS sources with CORS enabled.
A small example
[{"name":"Ada","age":30},{"name":"Grace","age":40}]name,age
Ada,30
Grace,40Frequently asked questions
Can this converter handle nested JSON?
Yes. Nested objects become dot-separated column paths, with literal dots and backslashes escaped. Nested arrays are serialized as JSON within their cells. They are not expanded into additional rows.
Why did a CSV value gain a leading apostrophe?
Formula protection prefixes string cells that start with formula operators such as =, +, -, or @, including after whitespace. This helps prevent spreadsheet formula execution. You can disable it when exact cell text is required and you trust the data.
Are null and missing values preserved distinctly?
No. Both are written as empty cells. CSV does not have a standard JSON-style null type. Keep the original JSON if you need to preserve that distinction or exact nested types.
Built around open standards: JSON (RFC 8259), JSON Schema, and YAML 1.2.