CSV

JSON ↔ CSV

Convert between JSON arrays and CSV

Data Format
🔒 100% client-side — your data never leaves this page
Maintained by Evan•Updated: September 30, 2026
Options
Input

Paste JSON or CSV and convert it with auto-detection first; key expansion and advanced options are available in Advanced mode.

Delimiter
🔒 Processed locally in your browser
Output
Converted output appears here
Page reading mode

The full guide also includes pitfalls, worked examples, snippets, FAQs, and related tools for checking results or troubleshooting.

About this tool

Convert pasted JSON objects or arrays to delimited text, or read CSV into an array of string-valued objects. Choose comma, semicolon, or Tab, first-row keys or the union of keys, and optional quoting of every field. Nested values remain JSON text in one cell. A preview shows up to 40 rows; verify the generated header as well. Input and options are saved in this browser’s local storage.

Production Snippets

See what the union-of-keys option adds

text

Input JSON:
[{"id":1},{"name":"Bo"}]

Include all keys: on
Delimiter: comma
Output CSV:
id,name
1,
,Bo

CSV back to JSON:
[{"id":"1","name":""},{"id":"","name":"Bo"}]

Suggested Workflow

Failure Clinic (Common Pitfalls)

A CSV round trip does not restore the original JSON

Cause: CSV values are strings, missing cells and null become empty, and nested values remain JSON text in a single column. The 40-row preview uses the first input row’s keys for its columns.

Fix: Inspect the generated CSV header as well as the preview. Keep the original JSON when number types, nulls, missing fields, or nesting matter.

Frequently Asked Questions

Which JSON shapes become rows?

An object becomes one row. Array objects become rows; primitive or array items are placed in a value column. By default the header is the first-seen union of all row keys; turning off Include all keys uses only the first row’s keys.

Are nested values flattened?

No. Nested objects and arrays are serialized as JSON text inside a cell. Missing values and null become empty cells. This mapping does not preserve every JSON distinction on a round trip.

How is CSV read?

Choose comma, semicolon, or Tab. The first row supplies trimmed property names and at least one data row is required. Values remain strings; missing cells become empty strings, extra cells are discarded, and duplicate header names overwrite earlier columns.

Are quoted fields and previews supported?

The reader supports delimiters, doubled quotes, and line breaks inside quoted fields, and rejects unclosed quotes. Output quotes headers and cells when needed. The preview displays up to 40 rows; JSON-to-CSV preview columns come from the first input row, so also inspect the generated header.

Is the input stored or uploaded?

Conversion does not upload input. The browser saves the input and options in local storage for restoration; Clear removes the saved input.

Keep browsing