Runs locally · Zero uploads

JSON to CSV Converter

Turn JSON arrays into CSV. See detected columns and row count before exporting.

How it works

Many APIs return data as JSON arrays of objects, but spreadsheet workflows demand CSV. This tool takes a JSON array — where each element is an object with consistent keys — and flattens it into comma-separated values with a header row derived from the object keys.

Before conversion, the tool scans the array to detect all unique column headers and displays them alongside the row count. This preview step lets you verify that the JSON structure is what you expect before generating the CSV output. If objects have varying keys, all unique keys are included and missing values are left empty.

The converter handles nested objects by flattening them with dot-notation keys (e.g., address.city), and arrays are serialized as JSON strings within the CSV cell. Fields containing commas, quotes, or newlines are properly quoted per RFC 4180.

The entire conversion runs in your browser with zero server communication. JSON payloads from APIs often contain sensitive user data, financial records, or internal metrics — this tool ensures that data stays on your device.

Verify it yourself. Open DevTools → Network → run a conversion. The only requests you'll see are the page assets — your file never leaves this tab.

FAQ

What JSON structure does this tool expect?

An array of objects: [{"key":"value"}, ...]. Each object becomes one CSV row. The union of all object keys becomes the CSV header row.

What happens with nested JSON objects?

Nested objects are flattened using dot notation. {"user":{"name":"Alice"}} becomes a column user.name with value Alice.

Can I convert a single JSON object (not an array)?

Wrap it in an array: [{"key":"value"}]. The result will be a CSV with one data row.

How do I open the CSV in Excel?

Download the CSV file and double-click it to open in Excel. If columns appear merged, use Excel's "Text to Columns" feature and select comma as the delimiter. For non-English locales, Excel may expect semicolons.

Is there a row limit?

The converter runs in browser memory. Arrays with tens of thousands of rows work fine. For very large datasets, use the Bytario API with streaming support.