Convert JSON arrays to CSV, CSV to JSON, or export CSV as TSV / Excel-compatible files.
name,email,address.city,address.zip Alice,alice@example.com,NYC,10001 Bob,bob@example.com,LA,90001 Charlie,charlie@example.com,Chicago,60601
| name | address.city | address.zip | |
|---|---|---|---|
| Alice | alice@example.com | NYC | 10001 |
| Bob | bob@example.com | LA | 90001 |
| Charlie | charlie@example.com | Chicago | 60601 |
JSON to CSV converts a JSON array of objects into comma-separated values you can open directly in Excel, Google Sheets, or LibreOffice Calc. Paste an array like [{"id":1,"name":"Sensor A"},{"id":2,"name":"Sensor B"}], and the tool reads each object as a row and each key as a column header, then hands you a downloadable .csv file.
It is built for developers, data analysts, and QA engineers who pull JSON from a REST API, a NoSQL export, or a log stream and need a flat, spreadsheet-friendly table. Everything runs in your browser, so it works offline and handles API responses, configuration dumps, and IoT telemetry payloads without a round trip to a server.
CSV is a flat, two-dimensional format: one header row of column names followed by rows of values. JSON, by contrast, is hierarchical. Converting between them means flattening the structure. This tool treats the outer JSON array as the list of rows and each object's keys as columns. It first walks all objects to determine the complete set of keys (the header), because different objects may not share the same fields, then emits one line per object with values placed under the matching column.
Values that contain a comma, a double quote, or a newline are wrapped in double quotes, and any embedded double quote is escaped by doubling it (" becomes ""), following the RFC 4180 convention that spreadsheet software expects. For example, {"note":"3,000 mV"} becomes the field "3,000 mV" so the comma is not misread as a column separator.
Nested objects and arrays do not map cleanly onto a single cell. Depending on the tool's setting, a nested value such as {"config":{"port":8080}} is either serialized back to a JSON string inside the cell or flattened using dotted keys like config.port. Flat arrays of primitive objects convert most predictably, so pre-flattening deeply nested data before conversion gives the cleanest table.
An array of objects at the top level, such as [{"a":1},{"a":2}]. Each object becomes a row and each key becomes a column. A single object without surrounding brackets is treated as one row.
A single flat table cannot represent nested structures directly, so nested objects and arrays are either serialized as a JSON string inside the cell or flattened into dotted column names like address.city. Flatten complex data first for the cleanest output.
The tool collects every key across all objects to form the header, so no field is dropped. Objects missing a given key simply leave that cell empty.
Yes. Fields containing a comma, double quote, or newline are wrapped in double quotes, and internal double quotes are escaped by doubling them, per the RFC 4180 CSV rules that Excel and Google Sheets follow.
It is completely free with no sign-up. Conversion runs entirely in your browser using JavaScript, so your JSON is never uploaded to a server and the tool continues to work offline once loaded.
Yes. The output uses standard comma delimiters and CRLF-safe quoting, so it opens in Excel, Google Sheets, and LibreOffice. If Excel misreads UTF-8 characters, use the Data > From Text/CSV import and choose UTF-8 encoding.
Not with this tool, but the companion CSV to JSON tool reverses the process, turning a header row and data rows back into an array of objects.