Skip to content

Convert JSON to CSV

Flatten a JSON array of objects into a CSV that opens correctly in Excel, Numbers and Google Sheets. Nested fields become dotted columns, and the file is converted entirely in your browser.

Drop JSON files here

or

Free: up to 5 files per batch · Files never leave your device · Paste from the clipboard works too

    Private by design

    Your files are processed by your own device using WebAssembly and your browser's built-in codecs. Nothing is uploaded, logged or stored.

    Fast & offline-ready

    No queue, no waiting for a server. Once the page has loaded it even works without a connection.

    Works everywhere

    Chrome, Edge, Firefox and Safari on Windows, macOS, Linux, Android and iOS. No app to install.

    From API response to spreadsheet

    JSON is what APIs, webhooks, Firebase exports, MongoDB dumps and the browser's DevTools hand you. CSV is what colleagues in finance, operations and marketing can actually open. This converter bridges the two: each object becomes a row and each key becomes a column, with no import wizard at the other end.

    [
      { "id": 1, "name": "Ada", "address": { "city": "London", "zip": "N1" }, "tags": ["admin"] },
      { "id": 2, "name": "Grace", "address": { "city": "Leeds" } }
    ]

    becomes

    id,name,address.city,address.zip,tags
    1,Ada,London,N1,"[""admin""]"
    2,Grace,Leeds,,

    Three things happened there. The nested address object was flattened into address.city and address.zip columns. The tags array, which has no natural column form, was written as JSON text inside its cell. And Grace's missing fields became empty cells rather than breaking the row, because the header is the union of every key seen, in first-seen order.

    Accepted input shapes

    • A plain array of objects — the common case.
    • An object whose one property holds such an array, such as { "data": [ … ] } or { "results": [ … ] }. The wrapper is unwrapped for you.
    • An object of objects keyed by ID, as Firebase and many config files produce. Each inner object becomes a row.

    Anything else — a bare string, a top-level array of numbers — has no sensible table form and is rejected with a message rather than producing a one-column mess.

    Making Excel behave

    Two problems plague CSV files handed to Excel users. The first is encoding: a plain UTF-8 file opened by double-clicking shows "é" where "é" should be. Tinyvert writes a byte-order mark at the start of the file, which is the signal Excel uses to read it as UTF-8, so names and addresses with accents display correctly. The second is the separator. In Germany, France, the Netherlands and other locales where the comma is the decimal mark, Excel expects semicolons and otherwise crams every row into column A. The Delimiter menu offers comma, semicolon and tab so you can match the machine the file is destined for.

    Private by construction

    API exports routinely contain emails, tokens and order details. Here the JSON is parsed by code in your browser and the CSV is generated in memory on your device; nothing is transmitted, logged or retained. Convert up to five files per batch and grab them individually or as one ZIP, which is also built locally.

    Prefer a real workbook with typed cells? JSON to Excel applies the same flattening rules and writes .xlsx directly. To bring an edited sheet back into code later, CSV to JSON reverses the trip.

    How to convert json to csv — step by step

    1. Drop one or more .json files into the drop zone or click "Choose files".

    2. Pick a Delimiter: comma for most tools, semicolon if your Excel uses commas for decimals, or tab.

    3. Conversion starts automatically; wait for the progress bar — a few seconds for a typical export.

    4. Download each CSV, or all of them as a ZIP built on your device.

    Frequently asked questions

    Which JSON structures can be converted to CSV?
    Three shapes: an array of objects; an object with a single property holding such an array, like {"data": [...]}; or an object of objects keyed by ID. Nested objects become dotted columns and arrays are written as JSON text inside the cell.
    Why does Excel show accented characters as garbage in other CSV files?
    Because Excel assumes a legacy encoding unless the file starts with a byte-order mark. Tinyvert writes UTF-8 with a BOM, so "é", "ü" and "ß" display correctly when the CSV is double-clicked.
    Excel put the whole row into column A. What went wrong?
    Your Excel is set to a locale that uses the comma as a decimal separator and therefore expects semicolons between fields. Pick Semicolon from the Delimiter menu and convert again.
    What happens when objects have different keys?
    The header row is the union of every key, in the order they are first seen. A row without a particular key gets an empty cell in that column.
    Does it work with large API exports?
    Yes, within the memory of your device, since the JSON and the CSV are both held in RAM during conversion. Up to five files convert per batch.
    Is the JSON uploaded anywhere?
    No. Parsing and writing happen in your browser. The page even works offline after the first visit.

    All tools: HEIC to JPG, HEIC to PNG, Compress Image, Resize Image, PNG to JPG, JPG to PNG, PNG to WebP, JPG to WebP, WebP to JPG, WebP to PNG, AVIF to JPG, SVG to PNG, BMP to JPG, BMP to PNG, GIF to PNG, PNG to ICO, ICO to PNG, Image to PDF, JPG to PDF, PNG to PDF, PDF to JPG, PDF to PNG, PDF to Text, Merge PDF, Split PDF, MP4 to MP3, Video to MP3, MP3 to WAV, WAV to MP3, M4A to MP3, FLAC to MP3, OGG to MP3, MP3 to OGG, WAV to FLAC, FLAC to WAV, MP3 to M4A, Audio Converter, Compress Audio, MOV to MP4, MKV to MP4, WebM to MP4, TS to MP4, MP4 to WebM, Video Converter, Compress Video, Trim Video, Remove Audio, Video to GIF, GIF to MP4, CSV to JSON, JSON to CSV, CSV to Excel, Excel to CSV, Excel to JSON, JSON to Excel, Zip Files, Unzip, SRT to VTT, VTT to SRT