CSVLink - free, no upload, runs in your browser

Convert JSON to CSV (and back) without uploading your data

CSVLink converts JSON arrays into clean CSV and turns CSV back into JSON, with optional nested-object flattening, custom delimiters for different locales, and spreadsheet formula-injection protection on every export. Conversion runs entirely in your browser - API responses and dataset exports never leave your device.

Why convert JSON to CSV in a local tool

JSON is the language of APIs; CSV is the language of spreadsheets. Every integration eventually needs to move rows between the two - exporting an API response for a manager, importing a vendor spreadsheet into a data pipeline, or preparing a dataset for analysis.

Doing that conversion in your browser matters when the data is anything beyond throwaway: customer lists, order exports, or production API responses. CSVLink keeps those bytes local, and there is no per-file quota or sign-up standing between you and the result.

Flattening, delimiters, and the formula guard

A JSON object like {"user": {"name": "Alice"}} flattens to user.name as a CSV column, so nested API responses become flat spreadsheet tables without hand-renaming every field. The delimiter picker covers the two European pain points - semicolons for Excel exports and tabs for legacy systems.

Every CSV CSVLink produces also passes through a formula guard: cells that begin with =, +, -, or @ are escaped so the file renders as plain text in Excel and Google Sheets instead of executing as a formula.

How to convert JSON to CSV

Frequently asked questions

What JSON shapes does CSVLink accept?

An array of objects is the most natural input. A single object is treated as one row, and nested objects or arrays are flattened into dot-notation columns when the flatten option is on.

Can it convert CSV back to JSON?

Yes. Paste CSV on the right and press CSV → JSON. Cells that look like numbers are typed as numbers, and every row becomes an object.

What is the size limit?

Inputs up to about 10 MB are supported, which covers tens of thousands of typical rows. Larger files should be split first.

Why does the CSV escape =, +, -, and @?

Spreadsheets interpret cells starting with those characters as formulas. Escaping them prevents a CSV downloaded from a third party from executing anything when opened - a real attack vector for imported datasets.

Is my JSON uploaded anywhere?

No. Parsing and conversion happen in your browser. This is what makes CSVLink safe for API responses containing tokens or customer data.

Related local tools