From API response to spreadsheet
JSON is what APIs, webhooks, Firebase exports, MongoDB dumps and the browser's DevTools hand you. CSV is what colleagues in finance, operations and marketing can actually open. This converter bridges the two: each object becomes a row and each key becomes a column, with no import wizard at the other end.
[
{ "id": 1, "name": "Ada", "address": { "city": "London", "zip": "N1" }, "tags": ["admin"] },
{ "id": 2, "name": "Grace", "address": { "city": "Leeds" } }
] becomes
id,name,address.city,address.zip,tags
1,Ada,London,N1,"[""admin""]"
2,Grace,Leeds,,
Three things happened there. The nested address object was flattened into address.city and address.zip columns. The tags array, which has no natural column form, was written as JSON text inside its cell. And Grace's missing fields became empty cells rather than breaking the row, because the header is the union of every key seen, in first-seen order.
Accepted input shapes
- A plain array of objects — the common case.
- An object whose one property holds such an array, such as
{ "data": [ … ] }or{ "results": [ … ] }. The wrapper is unwrapped for you. - An object of objects keyed by ID, as Firebase and many config files produce. Each inner object becomes a row.
Anything else — a bare string, a top-level array of numbers — has no sensible table form and is rejected with a message rather than producing a one-column mess.
Making Excel behave
Two problems plague CSV files handed to Excel users. The first is encoding: a plain UTF-8 file opened by double-clicking shows "é" where "é" should be. Tinyvert writes a byte-order mark at the start of the file, which is the signal Excel uses to read it as UTF-8, so names and addresses with accents display correctly. The second is the separator. In Germany, France, the Netherlands and other locales where the comma is the decimal mark, Excel expects semicolons and otherwise crams every row into column A. The Delimiter menu offers comma, semicolon and tab so you can match the machine the file is destined for.
Private by construction
API exports routinely contain emails, tokens and order details. Here the JSON is parsed by code in your browser and the CSV is generated in memory on your device; nothing is transmitted, logged or retained. Convert up to five files per batch and grab them individually or as one ZIP, which is also built locally.
Prefer a real workbook with typed cells? JSON to Excel applies the same flattening rules and writes .xlsx directly. To bring an edited sheet back into code later, CSV to JSON reverses the trip.