Convert JSON array data to CSV format
Convert JSON to CSV format instantly with our free online JSON to CSV converter. This tool helps developers and data analysts transform JSON arrays into CSV spreadsheet format for Excel and data analysis. Simply paste your JSON and get CSV output in real-time.
Convert JSON array data to CSV (Comma-Separated Values) format. The input must be a JSON array containing objects with consistent properties.
JSON to CSV conversion flattens structured JSON data into tabular format suitable for spreadsheets, databases, and data analysis tools. This transformation enables exporting API data to Excel, creating reports, or preparing data for tools that don't support JSON.
The converter analyzes JSON objects to determine all unique keys (columns), then iterates through each object to extract values for each key. Nested objects are flattened using dot notation or JSON string representation. Arrays may be joined or expanded into multiple rows.
JSON arrays of objects convert naturally: keys become headers, values become cells. Nested objects can be flattened (address.city), stringified, or expanded. Arrays within objects require decisions: join with delimiter, take first value, or create multiple rows. Null values become empty cells.
Export API data to CSV for spreadsheet analysis.
[{"name":"John","age":30}] → name,age\nJohn,30Allow users to download application data as CSV.
Prepare JSON data for import into SQL databases via CSV.
Convert JSON for users who prefer spreadsheet tools.
Export data for analysis in tools like R, SPSS, or Tableau.
// Simple JSON to CSV
function jsonToCsv(data) {
if (!data.length) return '';
const headers = Object.keys(data[0]);
const rows = data.map(obj =>
headers.map(h => {
const val = obj[h] ?? '';
// Escape quotes and wrap if needed
const str = String(val).replace(/"/g, '""');
return str.includes(',') || str.includes('"') || str.includes('\n')
? `"${str}"` : str;
}).join(',')
);
return [headers.join(','), ...rows].join('\n');
}
// Using Papa Parse (handles edge cases)
import Papa from 'papaparse';
const csv = Papa.unparse(jsonArray);
// With custom columns
const csv = Papa.unparse({
fields: ['name', 'email', 'age'],
data: jsonArray
});Papa Parse handles quoting, escaping, and edge cases automatically. For simple data, manual conversion works.
import csv
import json
# Using csv module
def json_to_csv(data):
if not data:
return ''
output = []
writer = csv.DictWriter(
output,
fieldnames=data[0].keys(),
quoting=csv.QUOTE_MINIMAL
)
writer.writeheader()
writer.writerows(data)
return '\n'.join(output)
# Using pandas (handles nested, more features)
import pandas as pd
df = pd.json_normalize(data) # Flattens nested objects
csv_string = df.to_csv(index=False)
# With specific columns
df[['name', 'email']].to_csv('export.csv', index=False)pandas.json_normalize flattens nested structures. csv.DictWriter handles proper CSV formatting.
Use JSON to CSV for data export features, report generation, preparing API data for spreadsheet analysis, or converting JSON for tools that require tabular data format.
Common approaches: 1) Flatten with dot notation: {"address":{"city":"NYC"}} → address.city column with "NYC" value. 2) JSON stringify: store nested object as JSON string in cell. 3) Ignore nested objects. Choose based on your use case.