Skip to content
Instant · runs in your browser

JSON to CSV Converter

Flatten nested JSON, pick a delimiter, preview the table, download CSV.

API responses come as JSON. Analytics platforms export as JSON. Most spreadsheet software expects CSV. This JSON to CSV converter runs in your browser, flattens nested objects with dot notation, handles arrays three different ways, supports every delimiter in common use, and includes a reverse mode when you need CSV back into JSON.

Generate the whole content, not just check it.

BlazeHive writes SEO articles end to end from a single keyword. Outline, draft, meta, schema, internal links. Free trial, no card.

Start with BlazeHive Free trial

What JSON to CSV conversion actually handles

JSON is hierarchical. CSV is flat. Converting JSON to CSV means deciding what to do with nested objects, what to do with arrays, and which delimiter makes the output compatible with the spreadsheet or pipeline tool you are about to paste it into.

Nested objects become dot-notation columns. A JSON object {"user": {"name": "Ana", "age": 33}} becomes CSV columns user.name,user.age with values Ana,33 in the same row. Without flattening, the user column would hold the string [object Object] and the rest of the hierarchy would be lost.

Arrays present three choices. You can join array items into one cell with a separator like |, split each array item into a new row and repeat the parent fields, or stringify the array into a JSON string inside a single CSV cell. The right choice depends on what you are importing into. Excel users usually want split rows. Database imports usually want a join.

Delimiters matter because CSV stands for comma-separated values but many regions and platforms expect semicolons, and tab-delimited files avoid escaping problems when commas appear inside your data. The converter lets you pick comma, semicolon, tab, or pipe.

The reverse mode reads CSV and converts it back into JSON. You pick whether the first row is headers, whether dot-notation columns should nest back into objects, and whether to output an array of objects or a single object with row keys.

How to use this JSON to CSV converter

  1. Paste JSON into JSON or CSV input, or drop in a URL if your JSON lives at an API endpoint and we fetch it for you.
  2. Set Mode to JSON → CSV or CSV → JSON.
  3. Pick your Delimiter. Comma is the default. Switch to semicolon if you are shipping to Excel on a European locale, tab if your JSON has commas in string values, or pipe if you are piping the output into a Unix script.
  4. Toggle Flatten nested keys with dot notation on if your JSON has more than one level of nesting. Turn it off if you want nested objects stringified into single cells instead.
  5. Hit Convert. You see a preview table showing the first 20 rows and every column. Check that the flattening and array handling match your expectations.
  6. Click Download CSV to save the file, or copy the output and paste it directly into Google Sheets, Excel, or your database import tool.

Try pasting this JSON:

[
  {"product": "Widget A", "sales": {"Q1": 1200, "Q2": 1450}, "tags": ["new", "sale"]},
  {"product": "Widget B", "sales": {"Q1": 980, "Q2": 1100}, "tags": ["featured"]}
]

With flattening on and delimiter set to comma, the output is:

product,sales.Q1,sales.Q2,tags
Widget A,1200,1450,new|sale
Widget B,980,1100,featured

Without flattening, the sales column shows [object Object] and you lose the quarterly breakdown. The array-join default uses | as separator. Switch to split-rows mode and you get four rows: one per tag per product.

Why JSON to CSV conversion matters for data workflows

Flat files are the universal interchange format. JSON is the output format of every modern API, analytics dashboard, and webhook. If your workflow involves taking data from one system and putting it into another, you will convert JSON to CSV at least once a week.

API exports. Most REST APIs return JSON by default. Google Analytics Data API, Stripe reporting, GitHub releases, Airtable exports - all JSON. Loading that data into Power BI, Tableau, or a SQL database is faster when it arrives as CSV. You can automate the conversion, but checking the output manually first catches schema surprises before they become pipeline errors.

Data transformation pipelines. ETL workflows often split into a fetch stage that pulls JSON and a load stage that expects CSV. Flattening nested JSON in the browser before the load saves writing and maintaining a transformation script. For one-off migrations or exploratory analysis, this converter finishes the job in under a minute.

Spreadsheet imports. Analysts who do not write code can still import API data if they have a way to turn JSON into CSV. Google Sheets and Excel both handle CSV paste and file import. Neither handles raw JSON unless you write a script. This tool closes the gap.

The delimiter choice prevents silent data corruption. Comma-delimited CSV breaks when a text field contains a comma unless every value is quoted and the quote character is escaped. Tab and semicolon delimiters sidestep that problem in most datasets. If your JSON includes addresses, product descriptions, or user-generated text, switch to tab.

Nested JSON flattening explained

Flat CSV has one row per record and one value per column. Nested JSON has objects inside objects. Flattening bridges the gap by turning each level of nesting into a column name with a dot separator.

A JSON object with three levels:

{
  "company": "Acme Inc",
  "contact": {
    "person": "Jane Doe",
    "email": {"work": "[email protected]", "personal": "[email protected]"}
  }
}

becomes four CSV columns:

company,contact.person,contact.email.work,contact.email.personal
Acme Inc,Jane Doe,[email protected],[email protected]

Dot notation preserves the original hierarchy in a way that you can reverse. Some CSV-to-JSON converters recognize dot-notation columns and reconstruct the nested structure. If you leave flattening off, the converter stringifies nested objects into a single cell. That output is readable in a spreadsheet but not reversible back into structured data.

Arrays inside objects present a choice. If an object has "tags": ["new", "sale", "limited"] you can join the array into one cell as new|sale|limited, split into three rows with the other columns repeated, or stringify the array as a JSON fragment ["new","sale","limited"]. The join mode keeps one row per record and is the default. The split mode is useful when the array represents a one-to-many relationship. The stringify mode preserves type information but makes the CSV harder to query.

When your JSON includes mixed types - some records have an array where others have a single string - the converter normalizes them by wrapping single values into an array before applying the chosen array-handling rule. That prevents missing columns and keeps the CSV schema consistent.

Common mistakes

  • Pasting a JSON fragment instead of a complete structure. The converter expects valid JSON: either an array of objects [{…}, {…}] or a single object {…}. If you paste a truncated API response or a JSON chunk without closing braces, the parser throws an error. Copy the full response.
  • Leaving flattening on when you want readability over reversibility. Flattened column names like meta.author.profile.url are hard to scan in a spreadsheet. If you only need to read the data and will not convert it back to JSON, turn flattening off and accept stringified nested objects.
  • Using comma delimiter when your data has commas. Addresses, full names, and product descriptions almost always include commas. If your JSON contains any freeform text fields, switch to tab or pipe delimiter before you convert. Otherwise you will open the CSV in Excel and see columns shifted.
  • Forgetting that large files exceed browser memory. This converter runs client-side. If your JSON is larger than 50 MB, the browser may freeze or crash. For datasets that size, use a command-line tool like jq or csvkit instead.
  • Not previewing the output before downloading. The preview table shows the first 20 rows and every column. Check it. A wrong delimiter or a surprising array-split can double the row count and break downstream imports. Fixing it after download wastes time.

Advanced tips

  • Validate your JSON first. If the converter throws a syntax error and you cannot spot the problem by eye, paste your JSON into a validator like jsonlint.com or run it through jq . on the command line. The error message will point to the line number.
  • Use the reverse mode to round-trip your data. Convert JSON to CSV, edit the CSV in your spreadsheet, then convert back to JSON. This workflow is faster than writing a script when you need to bulk-edit object properties.
  • For deeply nested JSON, flatten first, then filter columns in your spreadsheet tool. A ten-level hierarchy produces dozens of dot-notation columns. Most of them are empty for most rows. Delete the empty columns after import.
  • Save the preview as a screenshot before you download. If you are converting API data for a report or audit, the preview gives you evidence of the structure and row count. Stakeholders will ask "how many records did you import?" and the screenshot answers it.
  • When working with arrays of primitives like ["red", "blue", "green"], the join mode with pipe delimiter is almost always the right choice. The split mode only makes sense when each array element needs its own row for database normalization.

Once you have your CSV, the next step is usually filtering or reshaping it. If your CSV includes a keyword column and you want to combine it with other lists, run it through our keyword combiner to generate permutations. If you are building URLs from the CSV rows, feed the relevant column into the slug generator to produce clean URL slugs in bulk. When your CSV is the result of an SEO audit and you want to validate the structure, use the SEO checklist to confirm that every field you need is present.

Generate the whole content, not just check it.

BlazeHive writes SEO articles end to end from a single keyword. Outline, draft, meta, schema, internal links. Free trial, no card.

Start with BlazeHive Free trial

Frequently Asked Questions

What is JSON and CSV?

JSON (JavaScript Object Notation) is a nested, hierarchical data format built for APIs and structured application data. It stores key-value pairs inside curly braces and supports arrays, nested objects, and multiple data types. CSV (Comma-Separated Values) is a flat, table-based format where each row is a record and each column is a field, separated by a delimiter (usually a comma). CSV works everywhere: Excel, Google Sheets, database imports, CRM uploads, and analytics platforms. JSON works for data transfer between systems, configuration files, and anything where structure matters more than readability. If your data has nested levels (like a product with variants, each variant with SKUs), JSON is the right export format. If you need to open the data in a spreadsheet, filter rows, run formulas, or hand it to a non-technical teammate, CSV is the answer. Our converter takes JSON of any structure, flattens nested keys with dot notation, handles arrays, and outputs clean CSV.

Can you convert JSON to CSV?

Yes, and you'll need to decide how to handle nested objects and arrays before the conversion makes sense. Paste or upload your JSON into the JSON or CSV input field. Pick JSON to CSV in the Mode dropdown. Toggle Flatten nested keys with dot notation on (the default) to turn nested structures into flat columns with dot names. Pick a Delimiter: comma for standard CSV, semicolon for European Excel (which already uses commas for decimals), tab for TSV, or pipe for systems that already have commas in the data. Hit convert. You get a live table preview showing the first 20 rows, plus a download button for the full CSV. If your JSON includes arrays, we offer two modes: join array items into one cell with semicolon separators, or split each item into its own row. The whole conversion runs client-side, so nothing uploads to a server.

How do I convert JSON to CSV?

Paste your JSON into the tool, or upload a .json file, or paste a URL that returns JSON (we fetch it for you). Select JSON to CSV in Mode. Check that Flatten nested keys with dot notation is toggled on if your JSON has more than one level of nesting. If it's off, only the top level becomes columns, and everything nested inside gets stringified into one ugly cell. Pick your Delimiter based on where you'll use the CSV: comma for Excel US, semicolon for Excel Europe, tab for database imports, pipe for systems where your data already contains commas. Hit convert. The output pane shows a table preview (first 20 rows, scrollable) so you can check the structure before downloading. Click Download CSV when it looks right. For reverse conversion (CSV back to JSON), flip the Mode to CSV to JSON. This is the fastest way to prep API response data for spreadsheet analysis.

How do I convert a JSON file to Excel?

Convert the JSON to CSV first, then open the CSV in Excel or import it directly. Paste or upload your JSON into the JSON or CSV input field. Set Mode to JSON to CSV. Turn on Flatten nested keys to ensure nested data doesn't get lumped into one unreadable cell. Pick comma as your Delimiter (the Excel default). Hit convert. Download the CSV. Open Excel, go to Data tab, click Get Data, then From Text/CSV, select your downloaded file, and Excel auto-detects the delimiter and loads the table. If your JSON has date fields or numbers stored as strings, Excel might misinterpret them. Check the column types in the import preview and change any that look wrong before clicking Load. Once it's in Excel, you can sort, filter, run pivot tables, or save it as .xlsx. If you skip the CSV step, Excel treats raw JSON as unstructured text.

What happens to nested JSON when I convert to CSV?

Nested keys get flattened into dot-notation column names when Flatten nested keys is toggled on (the default). A JSON object with order, customer, and nested name fields becomes three columns with names like order.id and order.customer.name. Each level of nesting adds one more dot. This keeps the structure readable in a flat table and prevents data loss. If you turn off flattening, the tool only converts the top level into columns, and nested objects get stringified into a single cell as raw JSON. That's fine for debugging or cases where you plan to parse the nested data separately, but it breaks filtering and formulas in spreadsheets. Arrays pose a separate problem. If your JSON has an array field with multiple tags, you can choose to join the items into one cell or split them into separate rows (one row per tag, duplicating the rest of the row's data). Splitting is useful for sales line items or multi-category posts.

Can I convert CSV back to JSON?

Yes, and it's faster than writing a manual parser. Flip the Mode dropdown from JSON to CSV to CSV to JSON. Paste your CSV into the input field, or upload a .csv file. The tool auto-detects your delimiter (comma, semicolon, tab, pipe) from the first few rows. If detection fails or you're using a non-standard delimiter, pick it manually in the Delimiter dropdown. Hit convert. You get JSON output in the pane below: an array of objects where each object is one row, and each key is a column header. Copy the JSON or download it as a .json file. If your CSV has a header row, we use those names as keys. If it doesn't, we generate numeric keys. For nested JSON output (turn a flattened CSV with dot-notation column names back into a hierarchical structure), toggle Flatten nested keys off and the tool reconstructs objects from any column name containing dots.

Why does my CSV look broken when I open it in Excel?

Excel expects a specific delimiter (usually comma) and encoding (UTF-8 or Windows-1252), and if the CSV uses something else, columns collapse, special characters turn into garbage, or everything lumps into one cell. Three common causes. First, delimiter mismatch: European Excel uses semicolon as the default delimiter because commas are already the decimal separator in many locales. If your CSV uses commas but Excel expects semicolons, everything stays in column A. Fix by changing Delimiter to semicolon before downloading, or use Excel's Data, then From Text/CSV import and manually set comma. Second, encoding issues: CSVs default to UTF-8, but older Excel versions expect Windows-1252. Any emoji, accented character, or CJK script breaks. Fix by saving the CSV as UTF-8 with BOM (byte-order mark) when exporting. Third, embedded commas: if any field contains a comma and the tool doesn't wrap that field in quotes, Excel treats the comma as a new column. Our tool auto-quotes fields that contain the delimiter.

Can I convert a JSON array or object?

Both work, but the output structure differs. If your JSON is an array of objects (the most common API response format), each object becomes one row in the CSV, and the keys become column headers. Example: an array of two people with name and age fields converts to two rows, two columns (name, age). This is the ideal input shape for conversion because it maps cleanly to a table. If your JSON is a single object with nested fields, the tool treats the top-level keys as column names and the values as one row. Example: a post object with title and nested author name becomes one row with columns title and author.name (if flattening is on). If your JSON is a nested array (an array inside an array), the tool either joins inner arrays into one cell or explodes them into separate rows, depending on your array-handling toggle. Most data exports, API responses, and database dumps return arrays of objects.

Is JSON better than CSV?

JSON is better for structured, hierarchical data that needs to preserve types and relationships. CSV is better for flat, tabular data you want to open in a spreadsheet, run SQL on, or hand to a non-technical user. JSON supports nesting (objects inside objects), arrays, booleans, nulls, and numeric precision without quotes. CSV supports none of that. Everything in a CSV is a string unless the consuming application infers types on import. JSON is the standard for APIs, config files, and data pipelines between systems. CSV is the standard for analytics exports, CRM imports, and anything where the end user is Excel or Google Sheets. Use JSON when you control both ends of the pipeline and structure matters. Use CSV when you need maximum compatibility, simplicity, and human readability. Convert between them when you need to analyze API data in a spreadsheet or push spreadsheet rows into a structured system.

What delimiter should I use for CSV?

Use comma for US and international Excel, semicolon for European Excel, tab for database imports, and pipe when your data already contains commas and semicolons. The delimiter is the character that separates one field from the next. Most tools and systems default to comma because that's the C in CSV (Comma-Separated Values). But commas appear inside data too: addresses, formatted numbers, natural-language text. If your data contains commas, you have two options. First, wrap affected fields in double quotes so the comma inside doesn't break the structure. Our tool does this automatically. Second, switch to a delimiter that doesn't appear in your data: semicolon, tab, or pipe. Semicolon is the standard in much of Europe because commas are already used as decimal separators. Tab (TSV) works well for database imports and scripts. Pipe is the fallback when commas, semicolons, and tabs all appear in your data. Pick the delimiter in the Delimiter dropdown before hitting convert.

Related free tools

All tools →