Convert JSON to CSV Online
Export JSON arrays to CSV for Excel, Google Sheets, or any data tool.
name,age,city John,30,Madrid Maria,25,Barcelona Carlos,35,Valencia
Use cases
From API response to spreadsheet in seconds
Business data export
Convert REST API responses to CSV so sales, marketing, or finance teams can work with data in Excel.
Data journalism
Transform public API data (open government, social media, statistics) to CSV for spreadsheet analysis.
100% private
Your JSON is processed in your browser. Never leaves your device. No accounts, no daily limits.
Intelligent flattening
Nested objects converted to columns with dot notation. Compatible with pandas, Excel, and any ETL tool.
How it works
Three steps, no hassle
Paste your JSON
Paste your JSON array directly into the editor. Accepts arrays of objects — the most common structure from REST API responses.
Automatic flattening
Nested objects are flattened using dot notation (address.city). Arrays in values are serialized as JSON text.
Download the CSV
Download the .csv ready to open in Excel, Google Sheets, or import into any database.
FAQ
Got questions?
Nested objects are flattened using dot notation. For example, {"address": {"city": "London", "zip": "SW1A"}} produces two columns: address.city and address.zip. This is compatible with the default behavior of jq, pandas json_normalize(), and most commercial ETL tools. Flattening is recursive: multi-level objects are represented as user.profile.avatar.url.
When a field contains a JSON array (e.g., "tags": ["api", "rest", "json"]), the value is serialized as JSON text in the corresponding CSV cell. CSV has no native array data type, so this is the most practical and interoperable representation. If you need one row per array element, you'll need to explode the column in pandas (df.explode('tags')) or in your destination tool.
The generated CSV uses UTF-8 with BOM (Byte Order Mark, EF BB BF at file start). The BOM is optional in UTF-8 per Unicode but is required for Excel on Windows to automatically recognize the encoding as UTF-8 rather than Windows-1252. Without BOM, Excel displays garbled characters when double-clicking to open. Google Sheets and LibreOffice Calc handle both UTF-8 with and without BOM correctly.
Yes. The generated CSV uses UTF-8 with BOM for direct Excel compatibility. It can be opened by double-clicking on Windows (Excel 2016 and later) or via Data > Import from CSV on older versions. On Excel for Mac, UTF-8 with BOM also works correctly. Fields containing commas, quotes, or line breaks are automatically enclosed in double quotes following RFC 4180 specification.
Processing happens in your browser, so the practical limit is available RAM. JSON arrays of up to 100,000 objects convert smoothly on most modern devices. For larger datasets, consider using the json2csv npm package (available in Node.js and as a CLI), or pandas in Python: df = pd.json_normalize(data); df.to_csv('output.csv', index=False) handles tens of millions of rows efficiently.
It accepts any valid RFC 7159/ECMA-404 JSON that is an array of objects at the root level: [{...}, {...}, ...]. This is the most common format in REST API responses (resource collections). If your JSON has the array under a key (e.g., {"data": [{...}]}), copy only the array value. Single objects (no array) and arrays of primitives (numbers, strings) do not produce a useful CSV.
Convert JSON to CSV: export API data to Excel and Google Sheets without code
JSON (JavaScript Object Notation), standardized in IETF RFC 7159 (March 2014, superseded by RFC 8259 in December 2017) and as ECMA-404 by Ecma International, is the dominant data interchange format in REST APIs, microservices, and modern web applications. However, a large portion of business-world data analysis still happens in spreadsheets: Excel (with over 750 million active users per Microsoft) and Google Sheets (over 900 million users in Google Workspace). Converting JSON to CSV is the bridge between these two worlds, enabling sales, marketing, finance teams, or data journalists to work with API responses without writing code. Tools like Stripe, Shopify, HubSpot, or any REST API platform return data in JSON; converting it to CSV enables analysis, pivoting, filtering, and visualization in the most accessible tool in the business world.
The main technical challenge in JSON-to-CSV conversion is flattening nested structures. JSON supports arbitrarily deep nested objects and arrays of any type, while CSV is inherently a two-dimensional table of rows and columns with scalar values. The most widely adopted convention for flattening is dot notation: the object {"user": {"name": "Alice", "address": {"city": "Seattle"}}} produces columns user.name and user.address.city. This notation is compatible with pandas json_normalize(), Snowflake's FLATTEN function, jq's -r operator, and most modern ETL tools. For arrays in values, serializing as JSON text in the cell is the most interoperable option, though it requires post-processing if per-element analysis is needed.
RFC 4180 (October 2005) defines the CSV format: each row ends with CRLF (\r\n), fields containing commas, quotes, or line breaks are enclosed in double quotes, and quotes inside quoted fields are escaped by doubling them (""). The recommended encoding for maximum Excel-on-Windows compatibility is UTF-8 with BOM (EF BB BF sequence); without BOM, Excel interprets the file as Windows-1252, corrupting accented characters and other Unicode. Google Sheets, LibreOffice Calc, and any modern command-line tool (csvkit, xsv, miller) handle both UTF-8 with and without BOM. Convertir.ai generates CSV strictly conforming to RFC 4180, with UTF-8 with BOM for maximum desktop compatibility, in your browser with no data upload.