Convert JSON to CSV Online (Free & Fast)
Convert JSON arrays into CSV format instantly. Paste your data, hit run, copy the CSV.
Paste your JSON → Get results instantly (no signup)
→ Convert this JSON to CSV.
1name,age,city
2Alice,30,New York
3Bob,25,LondonLove 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.
Works with:
- REST and GraphQL API responses
- Nested JSON arrays
- Large datasets and exports
Example: input → output
[ { "name": "Alice", "age": 30, "city": "New York" }, { "name": "Bob", "age": 25, "city": "London" }]name,age,city
Alice,30,New York
Bob,25,LondonAbout 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.
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
- CSV to JSONParse CSV text into a JSON array of row objects for further cleanup or reshaping
- Format ValuesReformat individual values with case changes, trimming, coercion, and slugification
- Map ValuesRemap existing values through a lookup table such as enums, codes, or category names
- Compute FieldCreate derived values or fields from formulas, expressions, and simple conditionals
Related comparisons
Read more on the blog
Advanced usage (optional)
JSON to CSV
v1.0.0Description
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
| Field | Type | Default | Description | |
|---|---|---|---|---|
| Delimiter | enum | , | Field separator: ,, ;, \t (tab), or `\ | ` (pipe) |
| Include Headers | boolean | true | Add column names as the first row | |
| Columns | json | [] | JSON array of field names to include (empty = all fields) | |
| Flatten Nested Objects | boolean | false | Flatten nested objects using dot notation keys (e.g., user.name) | |
| Array Delimiter | string | `\ | ` | Character to join array values within a single cell |
| Column Mapping | column-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
| Name | Type | Default | Description |
|---|---|---|---|
| Delimiter | enum | , | Character used to separate fields in the CSV output , ; \t | |
| Include Headers | boolean | true | Add column names as the first row |
| Flatten Nested Objects | boolean | false | Flatten nested objects using dot notation keys (e.g. user.name) |
| Array Delimiter | string | | | Character to join array values within a single cell |
| Columns | json | [] | 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
Convert this JSON to CSV.1name,age,city
2Alice,30,New York
3Bob,25,London1[]API Usage
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":"|"}}'1name,age,city
2Alice,30,New York
3Bob,25,London