Skip to content

Free developer tool · runs in your browser

JSON to CSV converter for nested JSON.

Turn an API response into a spreadsheet. The tool finds the array of records inside your JSON, flattens nested objects into columns such as customer.email, and gives you a CSV to preview, copy or download. Nothing is uploaded.

Delimiter
Arrays
1,451 chars
CSV2 rows · 23 columns

Preview · first 2 of 2 rows

CSV preview
idstatustotalcurrencyplacedAtcustomer.idcustomer.namecustomer.emailitems.0.skuitems.0.nameitems.0.qtyitems.0.priceitems.1.skuitems.1.nameitems.1.qtyitems.1.pricetags.0tags.1tracking.carriertracking.numbertagstrackingcouponCode
ord_1042shipped129.5USD2026-10-14T09:21:00Zcus_88Maya Chenmaya@example.comKB-01Mechanical keyboard199.5CB-USB-CUSB-C cable215prioritygiftUPS1Z999AA10123456784
ord_1043pending42USD2026-10-15T16:02:00Zcus_91Tom Okafortom@example.comMS-02Wireless mouse142[]WELCOME10
Rows
2
Columns
23
Arrays found
1
CSV size
560 B

Privacy: this tool runs in your browser. Your JSON is not uploaded or logged. A shared link keeps the input after the #, which browsers never send to a server.

Follows: RFC 4180 (checked 2026-10-18) · OWASP (checked 2026-10-18) · RFC 8259 (checked 2026-10-18)

What this tool does


From nested JSON to a flat table.

  • 01

    Finds the rows for you

    APIs wrap their lists: data.orders, results, items. The tool lists every array of objects in the document and starts on the largest, so you rarely have to dig the list out first.

  • 02

    Nested keys become columns

    Objects inside a record flatten to dot-path columns, and the header row is the union of every record’s keys, so a field missing from one row leaves an empty cell instead of shifting the table. Arrays become numbered columns or one JSON cell.

  • 03

    Ready for Excel or a database

    Choose comma, semicolon, tab or pipe. Quoting follows RFC 4180, records end in CRLF, an optional byte-order mark helps Excel read accented text, and an optional guard stops cells being run as spreadsheet formulas.

FAQs · JSON to CSV


JSON to CSV · frequently asked questions

Nested objects, arrays, Excel and what is sent where.

Each nested key becomes a column named by its path, so {"customer":{"email":"a@b.co"}} becomes a customer.email column. The header row is every key found in any record, in the order first seen, and a record that lacks a key gets an empty cell.
You choose. Numbered columns gives tags.0, tags.1 and so on, which suits short lists. JSON text keeps the whole array in one cell as JSON, which keeps one column per field however long the lists get.
Yes. Most API responses wrap their list, for example in data.orders. The tool finds every array of objects in the document, starts on the largest, and lets you pick another from the Rows from list. To see the structure first, open it in the JSON viewer.
Excel can misread a UTF-8 file that does not start with a byte-order mark. Tick Add a UTF-8 BOM before downloading. Leave it off for files a program will read, since some parsers treat the mark as part of the first header.
No. It runs entirely in your browser: nothing you paste is sent to QalbIT, logged or stored. A shared link keeps your input after the # in the address, and browsers never send that part to a server.

Next step


Exporting data by hand every week?

QalbIT builds the backends, integrations and scheduled exports that move data between your systems, so a report is a job that runs, not a file somebody converts.

More free tools


More free tools

Each one opens on a worked example and shows its answer without a signup.

All free tools