Skip to content
Free · Runs in your browser

JSON to CSV converter

Turn a JSON file into a CSV. Nested fields become their own columns, and your file never leaves your browser.

Works with
JSONJSONLCSVXLSX
Opens inExcelGoogle Sheets

Drop a JSON file here

JSON or JSON Lines, up to 100 MB. It stays on your computer.

  • No sign-up
  • Nothing uploaded
  • Comma, semicolon or tab
  • Arla Foods logo
  • Bacardi logo
  • British American Tobacco logo
  • Everest Detection logo
  • Golden Acre logo
  • Handlangers logo
  • Inspired Learning Group logo
  • Kantar logo
  • MUFG logo
  • NielsenIQ logo
  • PTI Digital logo
  • RethinkFirst logo
  • Starbucks logo
  • The Specialist Works logo
What you get

A CSV that opens cleanly, made on your computer.

  • Your file stays on your computer

    The CSV is written in your browser. Nothing is sent to Mammoth or anyone else.

  • Nested fields become columns

    A field like customer.name gets its own column instead of a block of JSON text.

  • Commas stay inside their cell

    A value like web, repeat is quoted, so it doesn't split into two columns.

How it works

How to convert JSON to CSV

The converter finds the list of records, writes one line per record, and gives every field a column.

  1. 1

    Add your JSON

    Drop a .json file on the box, choose one, or paste the JSON in.

  2. 2

    Check the rows

    A preview shows the columns and the first rows of your CSV.

  3. 3

    Download

    Pick a separator and save the CSV, or take an Excel file instead.

Your options

Other ways to do it

If you write code, a few lines will do it too.

  • Python with pandas

    A job you script once

    • Expands nested fieldsYes
    • Quotes values that contain commasYes
    • No code or installNo
    • Runs on a scheduleYes
  • Copy and paste

    A handful of flat records

    • Expands nested fieldsNo
    • Quotes values that contain commasNo
    • No code or installYes
    • Runs on a scheduleNo
  • This page

    This converter

    One-off files, no setup

    • Expands nested fieldsYes
    • Quotes values that contain commasYes
    • No code or installYes
    • Runs on a scheduleNo
With code

How to convert JSON to CSV in Python

If you write code, pandas does it in a few lines. For a quick job on the command line, jq works too.

Want it in Excel instead? Excel can open JSON with Power Query and save it as CSV. The steps are on the JSON to Excel page.

Python
import json
import pandas as pd

with open("orders.json") as f:
    data = json.load(f)

pd.json_normalize(data["data"]).to_csv("orders.csv", index=False)

json_normalize gives nested fields dotted column names, the same as this converter.

Command line (jq)
jq -r '.data[] | [.id, .customer.name, .total] | @csv' orders.json > orders.csv

jq writes only the fields you list, and no header row.

Your file stays private

The converter runs inside this page. Your JSON is read and written out as CSV on your computer, and nothing is sent to Mammoth. That makes it safe for API exports with customer data in them.

How we handle your data

Once the page has loaded, it works with your internet switched off.

Every month

Turning the same JSON into CSV every month?

Mammoth can do it for you. Put the JSON files in a folder and their records are added to one table, ready to export as CSV.

Try Mammoth free

Region exports

Northnorth.json
Southsouth.json
Westwest.json
DriveDropboxOneDriveSFTP
All regionsUp to date
Oct 01Leeds store4,120.00
Oct 01Bristol store3,875.50
Oct 01Cardiff store2,940.25
Nov 01Leeds store4,388.10
Nov 01Bristol store3,702.00

Illustration. Every new file in the folder is added to the same table.

Questions

JSON to CSV questions

Is my JSON sent anywhere?
No. The page reads your file and writes the CSV inside your browser. Once the page has loaded, it works with your internet switched off.
JSON or CSV: which should I use?
JSON holds nested data and lists, which is why APIs send it. CSV is a flat table that every spreadsheet, database and BI tool can open. Convert to CSV when you want to work with the data as rows and columns.
Why does my CSV open as one column in Excel?
Your copy of Excel expects semicolons, which is common where a comma is the decimal mark. Convert again with the separator set to Semicolon.
What happens to nested data?
Each nested field gets its own column with a dotted name, like customer.name. A list of plain values shares one cell, separated by commas and quoted. A list of objects stays as JSON text in one cell.
Can I get an Excel file instead?
Yes. After converting, choose Excel file. The JSON to Excel page does the same with Excel first.
Does it handle JSON Lines?
Yes. Each line of the file becomes one row of the CSV.
Is there a size limit?
Files up to 100 MB, and up to 1,048,575 rows, which is as many as Excel can open.
Is it free?
Yes, with no account and no email.