Data

JSON to CSV Converter

Paste a JSON array of objects and download a CSV your spreadsheet app can open immediately.

Runs in your browserFree · No signup requiredJSONCSV
JSONCSV

Press ⌘ Enter to run

4 lines · 124 chars

Ready — press Run or ⌘ Enter

Common uses

  • Open API responses in Excel or Numbers
  • Turn JSON fixtures into spreadsheets

Limitations

  • Nested objects are flattened to JSON strings

Getting API responses into a spreadsheet

Most REST APIs hand back a JSON array of objects, which is awkward to read directly. Paste that array here, run the conversion, and you get CSV that Excel, Numbers, Google Sheets, or LibreOffice opens straight away. A common workflow is copying a response out of your browser network tab or a tool like curl, dropping it in the input box, then downloading the result as formatos-json-to-csv.csv for a colleague who only works in spreadsheets.

It also helps with JSON fixtures and seed data. If you keep test records as an array of objects, this converter turns them into a flat table you can scan by eye, sort, or filter, without writing a throwaway script. The column order follows the order keys first appear across your objects.

You do not need an account, and nothing is uploaded. The conversion runs entirely in your browser using JavaScript, so the JSON you paste never leaves your machine. That makes it reasonable for data you would not want to send to a third-party server.

How rows, columns, and missing keys are handled

The converter expects the top-level value to be a JSON array, and it builds the header row from the union of every key it finds across all objects. If one record has an "email" field and another does not, "email" still becomes a column, and the record that lacks it simply gets an empty cell. This means uneven objects line up correctly instead of shifting columns out of alignment.

Only plain objects become rows. If your array mixes in loose strings, numbers, or nested arrays as top-level items, those non-object entries are skipped rather than turned into broken rows. You can also paste a single JSON object instead of an array; it is treated as a one-row table.

Cell values are stringified directly, and the output is properly escaped: any value containing a comma, a double quote, or a line break is wrapped in quotes, with internal quotes doubled. That keeps your CSV valid even when fields contain commas or multi-line text.

Working around nested data and other limits

This tool produces a flat table, so nested objects and arrays inside a field are not expanded into their own columns. Instead, each nested value is written as a compact JSON string in a single cell. If a record holds an "address" object, you will see something like {"city":"..."} in that column rather than separate city and zip columns. When you need fully flattened output, reshape the JSON before converting, or split the nested fields into top-level keys first.

Because everything runs in the browser, extremely large inputs can strain memory. If a big array feels slow, convert it in batches. The Run button is disabled until there is input, and you can trigger a run any time with Ctrl or Cmd plus Enter.

Your JSON must be syntactically valid; the tool parses it before converting, so a stray trailing comma or unquoted key will surface an error message instead of output. Fix the JSON in the input box and run again. Use Reset sample to restore the built-in example if you want to see the expected shape.

Related data tools

Appearance

Choose how the site looks on this device.