Skip to content

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

JSON ↔ CSV Converter

Quick Start

1
Paste or type CSV/TSV in the CSV pane; the JSON pane updates after the local parser reads the latest CSV side.
2
You can also edit JSON on the left, and the CSV pane stays in sync from the latest valid JSON source.
3
Delimiter is set to "Auto" by default. The tool inspects the first non-empty row and detects comma, tab, semicolon, or vertical bar (|).
4
With "Use header row" enabled, the first CSV row becomes JSON object keys; when disabled, output is a 2D array.
5
Use "Trim fields" and "Skip empty lines" to clean up messy CSV data.
6
Download JSON as .json. CSV downloads as .csv by default; choose Tab manually before downloading when you want a .tsv filename.

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

The last edited pane is the source of truth. Option changes regenerate the derived pane from that side, and stale derived output is not kept after parse errors.
With header row on, the first CSV row becomes object keys; blank headers become col1/col2, and duplicate headers receive _2/_3 suffixes. With header row off, CSV becomes a 2D array.
Object arrays become a union header plus rows, arrays of arrays become rows, primitive arrays become a single column, and one JSON object becomes one row. Missing object fields output empty cells.
Auto delimiter detection only compares comma, Tab, semicolon, and pipe on the first non-empty row outside quoted fields. It does not inspect the whole dataset or change the selected delimiter.
Tiered limits apply locally: input characters are 500,000 / 2,000,000 / 5,000,000; CSV rows are 10,000 / 50,000 / 100,000; columns are 100 / 200 / 500; cells are 250,000 / 1,000,000 / 2,000,000; JSON nodes are 250,000 / 1,000,000 / 2,000,000; JSON properties are 150,000 / 600,000 / 1,200,000; depth is 40 / 80 / 120; output is 16 / 48 / 96 MiB.

Usage Advice

Data pasted from Excel is usually tab-delimited. Auto detection checks the first non-empty row outside quoted fields; if it guesses wrong, choose the delimiter manually.
When "Use header row" is on, the first row is treated as column names. Turn it off if your CSV has no header.
Blank header cells become col1, col2, and so on. Duplicate header names get suffixes such as name_2 to keep JSON keys unique.
JSON → CSV accepts flat object arrays, arrays of arrays, primitive arrays, or a single object. Object arrays use all keys in first-seen order, and missing fields become empty cells.
JSON → CSV works best with flat object arrays. Nested objects/arrays are serialized as JSON strings in cells and are not flattened into dot-path columns.
Fields containing delimiters, newlines, or double quotes are automatically quoted and escaped per CSV rules.
If JSON or CSV is invalid, the source pane keeps your input and the derived pane is cleared until the input is fixed. JSON errors include line and column details when the parser reports them.

Round Trip Boundaries

CSV cells are text. CSV → JSON does not infer numbers, booleans, nulls, or dates, and JSON → CSV → JSON can turn typed values back into strings.
Nested JSON objects and arrays are written as JSON strings inside cells. CSV → JSON does not auto-parse those strings or rebuild nested objects from dot paths, brackets, or double underscores.
Strict JSON parsing follows JavaScript number behavior. Integers beyond the 53-bit safe range can lose precision unless you keep them as quoted strings.
This is a plain-text CSV/TSV converter. It can read text copied from Excel or Sheets, but it does not parse .xlsx workbooks, sheets, formulas, formatting, or merged cells.
Unsupported here: file upload, URL import, batch file conversion, CSV schema validation, CSV lint reports, JSON Lines, nested flatten/unflatten, dynamic typing, SQL import, Google Sheets connection, jq expressions, preview tables, share links, and server-side history.

Limitations & Compatibility

CSV is a flat tabular format and cannot natively represent nested structures. Nested JSON objects/arrays are serialized as strings and cannot be fully restored on reverse conversion.
CSV stores values as text. After a JSON → CSV → JSON round trip, numbers, booleans, nulls, and dates may come back as strings.
UTF-8 BOM (\uFEFF) is removed automatically. Other encodings (for example, GBK or Shift-JIS) are not supported; convert to UTF-8 first.
Like JSON in JavaScript, this tool follows IEEE 754 limits. Integers beyond 53-bit safe range may lose precision.

Privacy & Security

All processing happens locally in your browser. JSON and CSV text are session drafts; delimiter, header, cleanup, indent, line-number, and wrapping preferences stay on this device. There is no upload, cloud sync, URL fetch, remote history, or server-side conversion.

FAQ

5

Continue with these related tools for the next step.

All tool processing happens locally in your browser.