How to Convert JSON to Excel / CSV — Online, Free, No Upload
Learn how to convert JSON arrays to CSV/Excel spreadsheets — flatten nested objects, pick columns to keep, handle date formatting, and download CSV files that open correctly in Excel and Google Sheets.
Last updated:
Core Concepts
- Array JSON vs nested JSON
- The simplest case: an array of flat objects ([{"name":"Alice","age":30}, ...]). Each object becomes a row; each key becomes a column header. The tricky case: nested objects ([{"user":{"name":"Alice","email":"a@x.com"}}]). You need to either flatten (user.name → column) or pick specific paths to extract. Our converter supports both with dot-notation path selection.
- Handling Excel quirks: encoding, formatting, and limits
- CSV files are just text files with commas — but Excel doesn't default to UTF-8. If your JSON has non-ASCII characters (CJK, accents, emoji), add a BOM (byte order mark) at the start so Excel reads it as UTF-8. Excel also auto-formats: numbers that look like dates ('2023-01-02') or large integers ('1234567890') may be auto-converted — fix by prefixing with a single quote in the CSV. Row limit: ~1,048,576 per sheet.
- Picking and renaming columns
- Raw API responses often have 30+ fields, but your spreadsheet only needs 5 columns. Our converter lets you pick which JSON keys to include as columns, rename them (api_field_name → 'Human-friendly label'), and reorder them. This avoids sending clients a 50-column spreadsheet when they only care about 5 fields.
Frequently Asked Questions
What format should I use — CSV or XLSX?
CSV for most cases — human-readable, works with any tool (Excel, Google Sheets, Python pandas), git-diffable, and files are small. XLSX for cases where you need formatting (colors, fonts, frozen panes), multiple sheets, or cells exceeding CSV escape limits. Our tool exports CSV; for XLSX, use a converter or a library.
How do I handle JSON arrays of arrays (not objects)?
If your JSON is an array of arrays ([['Alice',30],['Bob',25]]), there are no keys to use as column headers. Our converter falls back to column_1, column_2, etc. If your JSON has a separate header row, use a manual pre-processing step or supply column names.
Try these related tools
JSON → CSV →
Convert an array of JSON objects to CSV online. Headers are inferred automatically from all keys across records.
CSV → JSON →
Convert CSV data to a JSON array of objects online. Auto-detects delimiter and quotes, preserves numeric types when requested.
JSON Flatten →
Flatten nested JSON to a single-level 'path → value' map (dot / bracket notation), or unflatten a flat map back into nested JSON. Compatible with lodash and Spring conventions. 100% local.
JSON Formatter →
Format, beautify, and validate JSON online. Free, fast, and 100% local — your data never leaves your browser.
JSON Path Finder →
Search JSON for keys or values and get back JSONPath expressions for every match. Reverse of a JSONPath tester — perfect when you know what you're looking for but not where it lives. 100% local.