Skip to content
en es

JSON ⇄ CSV Converter

Turn an array of JSON objects into CSV for a spreadsheet, or a CSV file into JSON. Nested objects become dot-separated columns, and exports are protected against spreadsheet formula injection.

Runs in your browser — nothing is uploaded.

user.name, tags.0 … as columns.

Prefix cells starting with = + - @ with an apostrophe.

Otherwise every value stays text.

Headers like a.b become { "a": { "b": … } }.

Copied

How to use it

  1. Pick the direction, then paste your JSON or CSV. The result updates as you type.
  2. Choose the delimiter. For CSV input, “Detect” guesses it from the data.
  3. JSON to CSV: every object becomes a row and the columns are the union of all keys. Nested objects and arrays are flattened into columns such as address.city and tags.0.
  4. CSV to JSON: the first row is used as keys. Tick the options to convert numbers and booleans or to rebuild nested objects from dotted headers.

Frequently asked questions

Is my data uploaded?

No. The conversion runs in your browser and nothing is sent anywhere.

What is CSV injection?

A spreadsheet runs a cell that starts with =, +, - or @ as a formula, which can leak data or launch commands. When exporting, text cells that start like that, or with a tab or return, get a leading apostrophe so they stay plain text. Numbers are never changed. You can turn this off if you need the raw values.

How are nested objects and arrays handled?

By default they are flattened into dot keys (user.name, tags.0, tags.1). Without flattening, each nested value is written as JSON text inside its cell.

Why are all my CSV values strings?

CSV has no types, so values stay as text, which keeps leading zeros such as 007. Tick “Convert numbers and booleans” if you want 1.5 and true instead of "1.5" and "true".

Can it open a semicolon or tab separated file?

Yes. Leave the delimiter on Detect or choose comma, semicolon, tab or pipe. Quoted fields with commas, quotes and line breaks are handled.