Go to Sign up
Note: Your files never leave your device. We don't upload, transfer, or store your data.
JSON (JavaScript Object Notation), defined by RFC 8259, is a text-based data format using key-value pairs and ordered lists. It is the standard format for APIs, configuration files, and data exchange between web services.
CSV (Comma-Separated Values), defined by RFC 4180, is a plain-text format for tabular data where each line is a row and values are separated by a delimiter — typically a comma. CSV files open natively in Excel, Google Sheets, and any spreadsheet application.
Why convert JSON to CSV:
Open API response data in Excel or Google Sheets for analysis
Import JSON data into databases that accept CSV (MySQL, PostgreSQL via LOAD DATA INFILE)
Share data with non-technical stakeholders who use spreadsheets
Feed JSON-sourced data into BI tools (Tableau, Power BI) that prefer CSV input
Audit or review JSON datasets in a readable tabular layout
This tool runs entirely in your browser. Your data is never uploaded to any server. No data is transmitted, logged, or stored. The conversion happens locally on your device using JavaScript, making it safe for sensitive data including API keys, user records, and proprietary datasets.
The tool includes a syntax-highlighted Ace code editor for pasting JSON directly, or you can upload a .json file via drag-and-drop. Real-time validation confirms whether your JSON is well-formed before conversion.
JSON is hierarchical; CSV is flat. The conversion process:
Parses the JSON input into a JavaScript object
Collects all unique keys across every object in the JSON array to form column headers
Flattens nested values — objects and arrays within cells are serialized as JSON strings
Outputs rows — each object becomes one CSV row, with missing keys represented as empty fields
Example: a JSON array of two objects [{"name":"Alice","age":30},{"name":"Bob","age":25,"city":"London"}] becomes:
name,age,cityAlice,30,Bob,25,LondonNotice that the "city" column exists because the second object has it, and the first row's city field is empty.
The input area uses the JSON editor with syntax highlighting and line numbers. A real-time validation indicator shows green ("Valid JSON") or orange ("Invalid JSON — Cannot convert to JSON Array") so you can fix syntax errors before converting.
Click Enter Data to open the code editor and paste JSON directly. Click Choose File to switch to drag-and-drop file upload for .json files. A Sample button loads example JSON data for testing.
Value Delimiter — Comma (default), tab, semicolon, newline, colon, pipe, slash, or hash
Row Delimiter — Newline (default) or any of the same characters
Double Quote Wrap — Wrap all values in double quotes for safe parsing
UTF-8 BOM — Prepend the byte order mark for Excel UTF-8 detection on Windows
Row Prefix / Suffix — Add custom strings before or after each row
All processing happens in your browser. No data leaves your device. The tool works offline after the page loads.
Paste your JSON into the code editor, or drag and drop a .json file onto the upload area. Click the Sample button to load test data. The tool validates the JSON in real time — a green indicator confirms valid input.
In the Properties panel on the right:
Double Quote Wrap — Enable if values contain commas, quotes, or line breaks
UTF-8 BOM — Enable if the CSV will be opened in Excel on Windows
Value Delimiter — Select the separator (comma is standard CSV; semicolon is common in European locales)
Row Delimiter — Typically newline; change for special output formats
Row Prefix / Suffix — Optional strings wrapped around each row
Click Convert. The CSV output appears in the Output Data panel. Click Copy to Clipboard to copy the result, or Download File (Premium) to save it as a .csv file.
JSON allows nesting (objects within objects, arrays within fields). CSV is inherently flat. When this tool encounters a nested object or array, it serializes it as a JSON string in the corresponding cell. For example, a field "address":{"city":"NYC","zip":"10001"} becomes the string {"city":"NYC","zip":"10001"} in the CSV cell. If you need full flattening (creating separate columns for address.city and address.zip), pre-flatten your JSON before conversion.
If JSON objects have different keys, the tool collects all unique keys and creates columns for each. Objects missing a key produce an empty cell in that column. This matches standard CSV behavior.
Microsoft Excel on Windows often fails to detect UTF-8 encoding in CSV files, displaying garbled characters for non-ASCII text. The UTF-8 BOM (bytes EF BB BF) is a three-byte prefix that signals to Excel that the file is UTF-8 encoded. Enable this option if your JSON contains accented characters, CJK characters, or other non-ASCII text.
Per RFC 4180, fields containing the delimiter, double quotes, or line breaks must be enclosed in double quotes. Enable "Double Quote Wrap" to wrap all values regardless of content — useful when importing CSV into systems with strict parsing rules.
All processing happens locally in your browser using JavaScript. Your files are never uploaded, transferred, or stored on any server. The tool works offline after the page loads.
The tool supports JSON arrays of objects (e.g., [{"key":"value"},...]) and JSON arrays of arrays. Each element becomes a row in the CSV. Nested objects are serialized as JSON strings in the cell.
This tool converts in one direction: JSON to CSV. For the reverse, use the Excel to JSON tool on A.Tools, or parse CSV in your preferred programming language.
There is no server-side limit. Processing happens in your browser, so practical limits depend on your device's available memory. JSON data up to 50 MB typically converts without issue on modern hardware.
The Convert button is disabled when the input JSON is invalid. Fix syntax errors (missing brackets, trailing commas, unquoted strings) until the validation indicator turns green.
Yes. The Properties panel offers comma, tab, semicolon, newline, colon, pipe, slash, and hash as value delimiters. Tab-separated output (TSV) is useful for pasting into spreadsheets. Semicolon-delimited output is standard in many European locales.
Yes, within browser memory limits. For files over 100 MB, consider splitting the JSON into smaller chunks or using a command-line tool like jq for server-side processing.