JSON ↔ CSV Converter
Convert CSV, TSV, and JSON locally with side-by-side sync, delimiter detection, header mapping, duplicate header handling, and copy/download output.
Delimiter
JSON indent
Use header row
Trim fields
Skip empty lines
JSON
Characters
0 / 500,000
⇄
CSV
Characters
0 / 500,000
Quick Start
Common Scenarios
Excel copy to JSON
copy a cell range from Excel or Google Sheets, paste the tab-delimited text into the CSV pane, and convert it to a JSON object array.
API response to spreadsheet
convert JSON responses to CSV for analysis in Excel or Google Sheets.
Import payload prep
turn pasted CSV rows into JSON payloads for import scripts or API requests without running the import here.
Log review
convert CSV logs to JSON before using downstream query tools; this page does not run jq expressions.
Mapping table migration
switch the current pasted mapping table between CSV and flat JSON config snippets.
Data cleanup
quickly clean exported data with field trimming and empty-line skipping.
Conversion Contract
Usage Advice
Round Trip Boundaries
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 non-empty 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, when the first row is not representative, 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"}). Blank header cells become col1, col2, and duplicate names get suffixes such as name_2. 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 when the JSON shape has object keys.
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. This page does not create or read dot-path, bracket-path, or double-underscore columns. If you need structural fidelity, flatten JSON before conversion with a dedicated flattening workflow.
Yes, for copied cell text. When you copy a cell range from Excel or Google Sheets and paste it into the CSV editor, the data is usually tab-delimited. Auto detection identifies most TSV pastes correctly. This tool does not parse .xlsx workbooks, formulas, sheet tabs, or formatting. If you want a .tsv filename, choose Tab manually 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.