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 Mike Cecconello · 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
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
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
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
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
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
- Free Ad Copy Generator: Google, Meta, LinkedIn
- Free AI Article Generator: A Draft, Not an Article
- Free AI Crawler Simulator: See What GPTBot Sees
- Free Alt Text Generator for Images
- Free Article Rewriter: Change Tone, Keep Facts
- Free Article Summarizer: Claim, Evidence, Caveat
- Free Backlink Checker: Links and Referring Domains
- Free Blog Outline Generator: H2 and H3 Headings
- Free Blog Post Ideas From Real Searches
- Free Canonical Tag Checker: Test Any URL
- Free Character Counter With Title and Meta Limits
- Free Content Idea Generator
- Free CTA Generator: Call-to-Action Ideas
- Free Email Subject Line Generator
- Free FAQ Schema Generator (JSON-LD, Article, Breadcrumb)
- Free Google Rank Checker: Live Position for a Keyword
- Free Grammar Checker: Grammar, Spelling, Punctuation
- Free Headline Analyzer: Score Titles Before You Publish
- Free Headline Generator for Blog Posts
- Free Internal Link Checker: Audit Anchors on Any Page
- Free Keyword Density Checker: A Diagnostic, Not a Target
- Free Keyword Gap Analysis Tool: Compare Two Keyword Lists
- Free Keyword Research Tool: Volume, Difficulty, CPC
- Free Link Extractor: Every Link on a Page
- Free LSI Keyword Generator (Really: Related Terms)
- Free Meta Description Generator With SERP Preview
- Free Plagiarism Checker: Exact-Phrase Web Search
- Free robots.txt Generator With AI Crawler Rules
- Free robots.txt Tester: Is This URL Blocked?
- Free SEO Content Brief Template and Generator
- Free SEO Title Generator: Title Tags That Fit
- Free Slug Generator: Clean URL Slugs From Any Title
- Free Social Media Post Generator: X, LinkedIn, Instagram
- Free Website Metadata Checker: Title, OG, Schema
- Free Website Worth Calculator: Traffic Value Estimate
- Free Word Counter and Readability Checker
- Free XML Sitemap Checker and Validator
- Interactive SEO Checklist: 33 Checks, Saved as You Go
- Reading Level Checker: Flesch Score and Grade Level
- SEO Cost Calculator: Build a Budget From Your Own Numbers
- SEO Health Check: The Agency Audit Checklist
- SEO ROI Calculator: Return, Payback Month and Formula
- SERP Analysis: How to Read a Search Result Page
- WordPress Permalink Generator: Preview Post URLs
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.