JSON to CSV converter that flattens nested objects.

API responses and crawler exports arrive as JSON; the people reading them want a spreadsheet. Paste the JSON, check the preview table, then copy or download the CSV.

By · Updated September 25, 2026

JSON to CSV converter

Runs in your browser. Nothing you paste is sent anywhere.

Nested objects become dot-separated columns, so {"meta":{"words":740}} becomes a meta.words column. Columns appear in the order keys are first seen, and a key missing from a row leaves that cell empty. The download starts with a UTF-8 byte-order mark so Excel opens accented text correctly. “Neutralise spreadsheet formulas” prefixes cells starting with =, +, - or @ with an apostrophe, which matters when the data came from somewhere you do not control.

What you can do with it

  • Turn an API response into a sheet a client can filter
  • Flatten a crawler or analytics export with nested fields
  • Convert JSON Lines logs into rows you can sort
  • Prepare data for a spreadsheet without writing a script

How it works, step by step

  1. 1

    Paste the JSON as it came

    An array of objects converts directly. A single object becomes one row. If the response wraps the rows, as in {"data": [...]}, the converter finds the array and says which key it used.

  2. 2

    Check the columns in the preview

    Nested objects become dot-named columns such as meta.words. Columns follow the order keys are first seen, and a key missing from a row leaves that cell empty rather than shifting the rest.

  3. 3

    Choose how arrays should land

    Join short lists like tags into one cell, split them into numbered columns when each position means something, or keep the raw JSON when you will parse it again later.

  4. 4

    Match the delimiter to the spreadsheet

    Comma is the default. Many European spreadsheet setups use a comma as the decimal separator and expect semicolons between fields instead, so switch if the file opens as one column.

  5. 5

    Download, or copy straight into a sheet

    The download includes a byte-order mark so accented characters survive opening in Excel. Copying skips it, since pasting does not need it.

Where JSON shows up in SEO work

More often than it used to. Search and analytics APIs return JSON, crawlers export it, and scripts that pull rankings or page data tend to write it because it is the easiest thing to write. The person who then needs to sort, filter or share that data usually wants a spreadsheet.

A converter is the step in between. It is not glamorous, but doing it by hand, or writing a one-off script each time, is how columns end up misaligned and a client sheet ends up wrong.

The rules this converter follows

  • Every distinct key path becomes one column, in the order it is first seen.
  • Nested objects flatten with dots. Arrays follow the option you pick.
  • A missing key is an empty cell, never a shifted row.
  • Fields containing the delimiter, quotes or line breaks are quoted, with inner quotes doubled, which is the standard CSV convention.
  • Nothing is rounded, reformatted or guessed. A date stays the string it was.

That last rule is deliberate. A converter that “helpfully” reformats numbers and dates is the reason leading zeros vanish from postcodes and product codes. If a value needs cleaning, clean it in the sheet where you can see what changed.

When a spreadsheet is the wrong destination

Beyond a few hundred thousand rows, a spreadsheet stops being a comfortable place to work, and the right move is a database or a notebook rather than a bigger CSV. For keyword lists specifically, the next useful step after getting them into rows is grouping them, which is what the keyword clustering tool does.

Frequently asked questions

Is my data sent anywhere?

No. Parsing and conversion happen in your browser. That matters when the JSON is a client's analytics export or anything with personal data in it.

How are nested objects handled?

They are flattened with dots. {"meta": {"words": 740}} becomes a column called meta.words with the value 740. Objects nested several levels deep produce longer names, like page.author.name.

What does the error message mean?

The JSON did not parse, and the message says where. Where the browser gives a character position, the tool converts it to a line and column. The usual causes are a trailing comma, single quotes instead of double quotes, or a comment, none of which JSON allows.

What is JSON Lines?

A format with one complete JSON object per line and no surrounding array, common in logs and bulk exports. If the input is not a single valid JSON document but each line is, the converter reads it that way.

What does "Neutralise spreadsheet formulas" do?

A cell that starts with =, +, - or @ can be run as a formula when the CSV is opened in a spreadsheet, which is a known way to smuggle harmful formulas into a file. The option prefixes those cells with an apostrophe so they display as text. Leave it off when the data is your own and a leading minus sign is a real negative number.

More free tools

Be the site the assistant names.

Add a domain and the first draft is written while you watch. Every publish is your decision, a click on the draft or a rule you set and can hold, and you can read the source or self-host it free.

Set up your site and read your first drafts before you enter a card.