Convert JSON to CSV Online (Free & Fast)

Convert JSON to CSV online instantly — including nested JSON, API responses, and large datasets. Paste, run, copy.

Paste your JSON → Get CSV instantly (no signup)

⚡ Instant resultsNo signupRuns in your browser
Try examples:

Convert this JSON to CSV.

[
{
"name": "Alice",
"age": 30,
"city": "New York"
},
{
"name": "Bob",
"age": 25,
"city": "London"
}
]
Output
1name,age,city
2Alice,30,New York
3Bob,25,London

Love the result?

Use this exact pipeline in your app, backend, or LLM workflow.

No setup needed. Works with curl, Node, Python.

Uses example data. For edited input, copy from the playground.

Read integration guide

Works with:

  • REST and GraphQL API responses
  • Nested JSON arrays
  • Large datasets and exports

Example: input → output

About this tool

A JSON to CSV converter takes an array of JSON objects and produces flat CSV text — one row per record, one column per key. The hard parts are the same ones that bite hand-rolled scripts: nested objects, missing fields, special characters in values, and arrays where each record has slightly different keys. This tool handles all of those cases without configuration.

The most common use case is taking an API response — REST or GraphQL — and turning it into something a spreadsheet, BI tool, or non-engineer collaborator can open. JSON is great for transit and storage; CSV is great for inspection and exchange. A converter that runs in the browser without uploads, signups, or installs lets you bridge the two formats in seconds, even on payloads several megabytes large.

For deeply nested JSON — common with REST responses that embed related records — flatten the input first, then convert. That way the columns end up readable (user.name, user.email) instead of stringified blobs. For records with inconsistent fields, normalize the array first so every row has the same column set.

The output here is plain CSV with double-quote escaping and a leading header row. The result is safe to paste into Google Sheets, Excel, Numbers, or any tool that reads RFC 4180-compliant CSV. There is no row limit; if your JSON fits in browser memory, the conversion runs without sending data anywhere.

How to convert JSON to CSV

  1. Paste your JSON array — or an API response — into the input panel.
  2. Click Run. The converter infers the column set from your records and produces RFC 4180-compliant CSV with a header row.
  3. Copy the output, or download it as a .csv file ready for Excel, Google Sheets, or any BI tool.

For deeply nested JSON, flatten the input first with the Flatten JSON tool, then convert. Each nested path becomes its own column (user.address.city) instead of a stringified blob.

When to use this tool

Use the general JSON to CSV converter when your input is already an array of records and your goal is a spreadsheet, report, BI import, or data handoff. If the hard part is nested order fields, use Nested JSON to CSV. If the source is a response wrapper from an endpoint, use API JSON to CSV.

Common use cases

  • Export REST or GraphQL API responses to Excel or Google Sheets.
  • Convert JSON logs into CSV for analysis in spreadsheets or BI dashboards.
  • Prepare structured data for non-engineer collaborators who don't read JSON.
  • Bulk-load large datasets into a database or data warehouse.
  • Stage flatten JSON to CSV output for downstream pipelines that expect tabular input.

JSON vs CSV

JSON is ideal for structured data exchange — it preserves nesting, types, and arbitrary key sets per record. CSV is ideal for spreadsheets, BI tools, and quick visual inspection — every row has the same columns and human-readable values.

Use this converter to bridge the two formats instantly. For a deeper side-by-side comparison see JSON vs CSV: format comparison.

Common errors when converting JSON to CSV

  • Nested objects end up stringified into a single cell. Flatten the JSON first so each path becomes its own column.
  • Inconsistent fields between records produce empty cells where keys are missing. Normalize the array first if you need a consistent column set.
  • Arrays inside fields can't fit naturally into a CSV cell. Either flatten them with [0], [1] indices or join their values into a delimited string before converting.
  • Special characters (commas, quotes, newlines) inside values do not break the CSV — they are quoted and escaped per RFC 4180, so they round-trip safely.

Why this converter

  • Pipeline-based transformation — the same engine that powers our flatten, normalize, and clean utilities runs your conversion, so messy JSON converts cleanly without bespoke scripts.
  • Handles nested and inconsistent JSON — the column set is inferred across the whole array, with missing keys filled as empty cells.
  • API-ready — when you outgrow the browser tool, the same conversion runs as a REST endpoint so you can pipe API responses straight to CSV in production.
  • No uploads — the conversion runs in your browser. Your JSON never leaves your device.

If your destination is a spreadsheet rather than a generic CSV consumer, the export JSON straight to Excel (XLSX) variant frames the same conversion around Excel's import quirks (encoding, leading zeros, date columns) and Google Sheets / Numbers compatibility.

Example pipeline on GitHub

Input
[
  { "name": "Ada Lovelace", "email": "ada@example.com", "active": true },
  { "name": "Grace Hopper", "email": "grace@example.com", "active": false }
]

Output
name,email,active
Ada Lovelace,ada@example.com,true
Grace Hopper,grace@example.com,false

The ForgeJSON Pipeline Spec repo includes a portable JSON to CSV pipeline you can inspect, copy, or version with your own tooling:

The example is a plain JSON pipeline document that converts an orders array into CSV-ready output with nested fields flattened into columns.

Frequently asked questions

Is this JSON to CSV converter free?+

Yes. The converter runs entirely in your browser, with no signup, no upload, and no rate limit. Your JSON never leaves your device.

Does it handle nested JSON?+

Yes, but the cleanest output comes from flattening the JSON first. Use the Flatten JSON tool, then convert. That way each nested path becomes its own CSV column instead of a stringified object.

What if my JSON records have different fields?+

Either normalize the array first (so every record has the same keys) or let the converter infer the union of all keys across records. Missing values become empty cells in the output.

Is there a size limit?+

There is no hard size limit. If your JSON fits in browser memory, the conversion runs. Multi-megabyte payloads work; very large arrays may take a few seconds to render.

Will commas, quotes, or newlines in my values break the CSV?+

No. The output uses double-quote escaping per RFC 4180, so values containing commas, quotes, or newlines are quoted correctly and round-trip safely back through any compliant CSV reader.

Common next steps

Related tools

Related comparisons

Read more on the blog

Advanced usage (optional)

JSON to CSV

v1.0.0
Convert
arrayreversible

Description

JSON to CSV

Convert a JSON array of objects into CSV text. Supports field selection, nested object flattening, custom column mappings with expressions, and configurable delimiters.

How It Works

The utility takes an array of objects and produces CSV text. Each object becomes a row, and object keys become column headers.

Basic Conversion

All fields from the first object determine the columns. Values are quoted when they contain the delimiter character.

Column Selection

Specify an array of field names to include only certain columns in a specific order.

Nested Object Flattening

When enabled, nested objects are flattened using dot notation. Arrays within cells are joined with a configurable delimiter.

Custom Column Mapping

Define custom columns with expressions using {{fieldName}} syntax. Allows combining fields, renaming columns, and applying transformations.

Configuration

FieldTypeDefaultDescription
Delimiterenum,Field separator: ,, ;, \t (tab), or `\` (pipe)
Include HeadersbooleantrueAdd column names as the first row
Columnsjson[]JSON array of field names to include (empty = all fields)
Flatten Nested ObjectsbooleanfalseFlatten nested objects using dot notation keys (e.g., user.name)
Array Delimiterstring`\`Character to join array values within a single cell
Column Mappingcolumn-mapping[]Define custom column mappings with expressions. When configured, overrides Columns and Flatten settings.

Column Mapping Expressions

Custom mappings let you define exactly what each column contains:

Column: "Full Name"     Expression: "{{firstName}} {{lastName}}"
Column: "Age"           Expression: "{{age}}"
Column: "Location"      Expression: "{{city}}"

Use Cases

Data Export

  • Spreadsheet export: Convert JSON data to CSV for Excel or Google Sheets
  • Database import: Prepare CSV files for database bulk import
  • Report generation: Export filtered data as CSV reports

Data Transformation

  • Column selection: Export only relevant fields from large objects
  • Field combination: Merge first/last name into a single "Full Name" column
  • Nested flattening: Convert hierarchical data to flat CSV rows

Integration

  • Legacy systems: Convert JSON API data to CSV for legacy system import
  • Email tools: Prepare CSV contact lists for email marketing tools
  • Analytics platforms: Export data in CSV format for analytics tools

Configuration

NameTypeDefaultDescription
Delimiterenum,Character used to separate fields in the CSV output , ; \t |
Include HeadersbooleantrueAdd column names as the first row
Flatten Nested ObjectsbooleanfalseFlatten nested objects using dot notation keys (e.g. user.name)
Array Delimiterstring|Character to join array values within a single cell
Columnsjson[]JSON array of field names to include (empty = all fields)
Column Mapping (Advanced)column-mapping[]Define custom column mappings with expressions. When configured, overrides Columns and Flatten settings.

Examples

AI Prompt
Convert this JSON to CSV.
[
{
"name": "Alice",
"age": 30,
"city": "New York"
},
{
"name": "Bob",
"age": 25,
"city": "London"
}
]
Output
1name,age,city
2Alice,30,New York
3Bob,25,London
Config
Delimiter
,
Include Headers
ON
Flatten Nested Objects
OFF
Array Delimiter
|
Columns
1[]

API Usage

POST /api/v1/utilities/convert.json-to-csv
Example:
curl -X POST https://your-domain.com/api/v1/utilities/convert.json-to-csv \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"inputs":{"primary":[{"name":"Alice","age":30,"city":"New York"},{"name":"Bob","age":25,"city":"London"}]},"config":{"delimiter":",","includeHeaders":true,"columns":[],"flattenNested":false,"arrayDelimiter":"|"}}'
Response
1name,age,city
2Alice,30,New York
3Bob,25,London