JSON ↔ CSV Converter
JSON ↔ CSV Converter
JSON ↔ CSV Converter supports bidirectional conversion between CSV, TSV, and JSON, with delimiter detection, header mapping, and field cleanup for imports, exports, spreadsheets, and API payload prep.
Delimiter
JSON indent
Use header row
Trim fields
Skip empty lines
JSON Output
⇄
CSV Output
Quick Start
Common Scenarios
Excel to JSON
copy tab-separated cells from Excel into the CSV pane and convert to a JSON object array instantly.
API response to spreadsheet
convert JSON responses to CSV for analysis in Excel or Google Sheets.
Database import prep
convert CSV datasets to JSON for batch API imports.
Log analysis
convert CSV logs to JSON for structured querying with tools like jq.
Config migration
switch between CSV mapping tables and JSON config files.
Data cleanup
quickly clean exported data with field trimming and empty-line skipping.
Usage Advice
Limitations & Compatibility
Privacy & Security
FAQ
CSV (Comma-Separated Values) is a plain-text table format where each line is a record and fields are separated by commas. TSV is the tab-delimited variant. Excel can open and export both formats, but .xlsx itself is a binary workbook format. This tool works with plain-text CSV/TSV, not .xlsx files. Historically, CSV had no single strict standard. In 2005, RFC 4180 defined common rules: fields are comma-separated, fields with special characters are wrapped in double quotes, and quotes inside quoted fields are escaped as two double quotes. Different apps still implement CSV with small differences, which is why import/export issues are common.
The tool scans the first row and counts commas, tabs, semicolons, and vertical bars (|) that appear outside quoted fields, then picks the most frequent one as delimiter. This is accurate for most well-formed CSV/TSV data. Mis-detection can happen when there is only one column (no delimiter appears), or when field content itself contains many delimiter characters. If that happens, choose the delimiter manually.
When enabled, the first CSV row is treated as column names, and each record becomes a JSON object keyed by those names (for example, {"name": "Alice", "age": "30"}). When disabled, all rows including the first are treated as data and converted to a 2D array (for example, [["name", "age"], ["Alice", "30"]]). In JSON → CSV direction, enabling header outputs object keys as the first CSV row.
Not fully. During JSON → CSV, nested objects/arrays are serialized with JSON.stringify into cell text. During CSV → JSON, those values remain strings and are not auto-parsed back to objects. If you need structural fidelity, flatten JSON before conversion.
Yes. When you copy a cell range from Excel and paste it into the CSV editor, the data is usually tab-delimited. Auto detection identifies it as TSV and converts correctly. If you want a comma-delimited .csv download, switch delimiter to comma before downloading.
The tool follows RFC 4180: if a field contains a delimiter, newline, or double-quote character, the entire field is wrapped in double quotes; quotes inside the field are escaped as two consecutive double quotes (""). Parsing and output generation both follow this rule. If input contains an unclosed quote mark, you will see the "Unclosed quote in CSV input" error.