When to convert JSON to CSV
CSV is the universal format for tabular data. Convert to CSV when you need to open data in Excel or Google Sheets, import it into a relational database, send it to someone who isn't comfortable with JSON, or run analysis in a data tool.
How the conversion works
JSON-to-CSV works best on arrays of flat objects. Each object in the array becomes a row. Each unique key across all objects becomes a column header. Values are filled in for each row where the key exists.
[{"name":"Alice","age":30},{"name":"Bob","age":25}]
Becomes:
name,age
Alice,30
Bob,25
Handling nested objects
Nested objects don't map cleanly to CSV columns. The best approach is to flatten the JSON first: our JSON Flatten tool converts {"user":{"name":"Ada"}} into {"user.name":"Ada"}, which then converts to a proper column header in the CSV.
Convert instantly
Use our JSON to CSV tool — paste your JSON array and download the CSV file immediately. If you need to go the other way, our CSV to JSON converter reads the header row and converts each subsequent row into a JSON object.
What happens to data types?
CSV is a text-based format — there's no concept of data types. Numbers, booleans, and dates all become text strings in the CSV. When you import the CSV into a database or analysis tool, you'll typically need to specify which columns should be treated as numbers or dates.
Frequently Asked Questions
- Can I convert nested JSON to CSV?
- Yes, but you need to flatten the JSON first. Use our JSON Flatten tool to convert nested objects into dot-notation keys, then convert to CSV. This turns
user.nameinto a column header. - What if my JSON objects have different keys?
- Our converter handles inconsistent objects gracefully. It collects all unique keys from all objects and uses them as column headers. Objects missing a particular key will have an empty cell for that column.
- How do I open the CSV in Excel?
- Download the CSV file and double-click it. Excel opens CSV files directly. If numbers are imported as text, use Excel's "Convert to Number" option to fix the type.