jsoncsvdata conversionjavascript

How to Convert JSON to CSV: 3 Easy Methods

Learn how to convert JSON data to CSV format using online tools, JavaScript, Python, and command-line tools.

April 20, 2024ยท6 min read

Why Convert JSON to CSV?

CSV (Comma-Separated Values) is ideal for:

  • Opening data in Excel or Google Sheets
  • Importing into databases
  • Sharing data with non-developers
  • Data analysis with pandas or R

Method 1: Online Tool (Fastest)

Use our JSON to CSV Converter - paste your JSON and download the CSV instantly.

Method 2: JavaScript

function jsonToCSV(data) {
  const headers = Object.keys(data[0])
  const rows = data.map(row =>
    headers.map(h => JSON.stringify(row[h] ?? '')).join(',')
  )
  return [headers.join(','), ...rows].join('\n')
}

const data = [
  { name: 'Alice', age: 30, city: 'NYC' },
  { name: 'Bob', age: 25, city: 'SF' },
]
console.log(jsonToCSV(data))
// name,age,city
// "Alice",30,"NYC"
// "Bob",25,"SF"

Method 3: Python

import json, csv

with open('data.json') as f:
    data = json.load(f)

with open('data.csv', 'w', newline='') as f:
    writer = csv.DictWriter(f, fieldnames=data[0].keys())
    writer.writeheader()
    writer.writerows(data)

Handling Nested JSON

For nested objects, you need to flatten first:

function flatten(obj, prefix = '') {
  return Object.entries(obj).reduce((acc, [k, v]) => {
    const key = prefix ? `${prefix}.${k}` : k
    if (typeof v === 'object' && v !== null && !Array.isArray(v)) {
      return { ...acc, ...flatten(v, key) }
    }
    return { ...acc, [key]: v }
  }, {})
}

Our JSON to CSV tool handles nested JSON automatically.