Skip to main content

JSON to CSV Converter

Convert JSON arrays and objects to CSV format

Paste or upload JSON and get a CSV you can open in Excel, Google Sheets, or any database import tool. The conversion runs locally in your browser, which matters when the JSON is an API response containing real customer or account data.

Real API output is rarely a clean flat array. Nested objects are flattened into dot-notation columns, so {"user":{"name":"Alice"}} becomes a user.name column. Records that do not all share the same keys are reconciled into one header row containing the union of every field, with missing values left empty rather than shifting cells out of alignment.

If your JSON wraps the records in an envelope — the common {"data":[...]} or {"results":[...]} shape — the array inside is detected so you do not have to strip the wrapper by hand first.

Files stay on this deviceRuns entirely in your browserFree — no signup

Drop your file here or browse from your device

Accepts JSON. Maximum input: 10 MiB. Files above this hard limit are rejected before local processing.

Continue your workflow

Finished this step? Take the result into a focused tool for what comes next.

How to Convert

  1. Paste your JSON or upload a .json file
  2. Check the detected columns in the preview table
  3. Confirm nested fields flattened the way you expect
  4. Download the CSV file

Features

  • Flattens nested objects into dot-notation columns (user.address.city)
  • Detects the record array inside a wrapper object such as data or results
  • Unions keys across records so uneven objects still align in one header row
  • Writes arrays as JSON text in a single cell rather than dropping them
  • Null and undefined values become empty cells instead of the text "null"
  • Proper CSV quoting for values containing commas, quotes, or newlines
  • Preview the parsed table before downloading
  • Runs in your browser — the JSON is never uploaded

Use Cases

  • Turn an API response into a spreadsheet for analysis or reporting
  • Convert JSON logs or events into a format a pivot table can summarise
  • Prepare JSON exports for a database or CRM import that only accepts CSV
  • Share structured data with colleagues who work in Excel or Sheets
  • Flatten a nested config file into a reviewable table
  • Create a readable CSV backup of a JSON dataset

Frequently Asked Questions

How do I convert JSON to CSV?

Paste the JSON or upload a .json file, review the detected columns in the preview, and download the CSV. Everything happens in your browser, so the data is not uploaded anywhere.

Can it handle nested JSON?

Yes. Nested objects are flattened into dot-notation columns, so {"user":{"address":{"city":"Paris"}}} becomes a column named user.address.city. Nesting can go as deep as your data does.

What happens to arrays inside my JSON?

An array value is written into a single cell as its JSON text — for example ["red","blue"] — rather than being split across columns. This keeps the row count stable and means nothing is discarded, and you can split that column afterwards if you need it separated.

What if my objects do not all have the same fields?

The header row is the union of every key found across the records. An object missing a field simply gets an empty cell in that column, so rows stay aligned instead of shifting left.

My JSON is wrapped in a data or results object. Does that work?

Yes. When the top level is an object rather than an array, the tool looks inside it for the array of records, which covers the common {"data":[...]} and {"results":[...]} API envelope shapes.

How are null values written?

As empty cells, not the literal text "null" — which is almost always what a spreadsheet or import tool expects.

What if my values contain commas or quotes?

They are quoted and escaped according to the CSV standard, so a value like Smith, John stays in a single cell when the file is reopened.

Is my JSON uploaded to a server?

No. Parsing and conversion happen in your browser and the content is not sent to the app server, which is why this works for API responses you would not paste into an unknown site.

Need to convert the other way? Try our Csv To Json