Developer Tools

JSON to CSV Converter

Turn JSON into a spreadsheet-ready CSV, or CSV back into JSON: nested objects flatten to dot-notation columns, fields escape per RFC 4180, delimiters, header rows and Excel-safe UTF-8 BOM included, all in your browser.

Your converted output will appear here. Paste input and press Convert.

Privacy: conversion runs locally in your browser. Nothing you paste is uploaded or logged.

More developer tools:

How this calculator works

JSON and CSV are the two shapes tabular data travels in: APIs hand you JSON, spreadsheets and databases want CSV. Converting by hand means flattening nested objects, quoting fields that contain commas, and guessing at delimiters, and every one of those steps is a chance to corrupt a row. This tool does the conversion both ways, entirely in your browser. Paste a JSON array of objects and get a CSV; paste CSV and get JSON back.

JSON to CSV works like this. Each object becomes one row and each key becomes a column, in first-seen order. Nested objects flatten with dot notation, so {"user": {"name": "Ana", "city": "Austin"}} becomes the columns user.name and user.city, which is how spreadsheet users actually want nested API data. Arrays inside a record are joined into one cell with "; " so no data is lost, and wrapped API responses are handled too: if you paste {"data": [...], "meta": {...}}, the tool finds the array under data and converts its records. Fields are escaped per RFC 4180: any field containing the delimiter, a double quote or a line break is wrapped in double quotes, and every literal quote inside is doubled, so the output opens cleanly in Excel, Google Sheets, LibreOffice and pandas. Worked example: [{"id": 1, "name": "Ana Torres", "note": "She said "hi""}] becomes id,name,note on the header row and 1,Ana Torres,"She said ""hi""" on the data row.

Three details decide whether a CSV survives Excel. First, the delimiter: comma is standard, but European locales and some exports use semicolons, and tab-separated values suit pasting into sheets; pick the one your target expects, or let Auto-detect read it from the header row. Second, the UTF-8 BOM: Excel on Windows historically opens CSV as Windows-1252 and mangles accented characters, so the download includes a UTF-8 byte-order mark by default, which tells Excel the file is UTF-8 and keeps é, ñ and Chinese characters intact. Third, line endings: the output uses plain LF, which Excel, Sheets and pandas all accept. Going the other way, CSV to JSON parses quoted fields properly, so a field like "Austin, TX" stays one value, detects the delimiter from the header row, and optionally infers numbers and booleans so age 30 arrives as 30, not "30". Nothing you paste leaves your machine in either direction, which is why the tool is safe for API responses that contain real customer rows.

Frequently asked questions

How do I convert JSON to CSV online?
Paste a JSON array of objects into the tool and press Convert. Each object becomes one row and each key becomes a column. Nested objects flatten to dot-notation columns (user.name, user.city), and the result can be copied or downloaded as a .csv file that opens in Excel or Google Sheets.
What happens to nested objects and arrays in JSON to CSV?
Nested objects flatten with dot notation, so address.city becomes its own column. Arrays inside a record are joined into one cell with "; " so nothing is dropped. If you paste a wrapped API response like {"data": [...], "meta": {...}}, the tool converts the array under data automatically.
Why does Excel mangle accented characters in my CSV?
Excel on Windows historically opens CSV files as Windows-1252 instead of UTF-8, which corrupts é, ñ and other non-ASCII characters. The fix is a UTF-8 byte-order mark (BOM) at the start of the file, which this tool adds to downloads by default. Untick it only if your target tool explicitly wants BOM-free UTF-8.
Which delimiter should I choose?
Comma is the default and works almost everywhere. Use semicolon for European-locale exports and tools that expect it, tab when pasting into a spreadsheet, and pipe when your data itself contains commas and semicolons. CSV to JSON auto-detects the delimiter from the header row if you leave it on Auto-detect.
How do I convert CSV back to JSON?
Switch to the CSV to JSON tab, paste the CSV, and press Convert. Quoted fields are parsed properly, so "Austin, TX" stays one value, and with type inference on, numbers and booleans arrive as real JSON values instead of strings. The first row is treated as the header unless you untick that option.
Is anything I paste uploaded or stored?
No. Parsing and formatting run locally in your browser with no server round trip, no account and no storage. Closing the page discards both the input and the output, which is why the tool is safe for API responses containing real data.
Disclaimer: Results are estimates for planning purposes only and are not financial advice. Actual loan terms, taxes and investment returns vary. Consult a qualified professional before making financial decisions.