Developer Tools

JSON to CSV

Convert JSON objects into CSV, semicolon-separated text or TSV locally. Preview rows, preserve number spellings and choose spreadsheet formula protection before downloading.

Your content stays on your device Free, with no account
Turn JSON records into a useful table Converted on your device

Need several developer steps together? Open Developer Studio →

Array of objects, or one object for a single row. Up to 200,000 UTF-16 input units.

Formula protection changes exported text and reduces spreadsheet formula interpretation; it is not a guarantee for every spreadsheet. JSON number tokens stay unchanged. Import untrusted data as text.

YOUR DELIMITED TEXT

Ready. Paste JSON records and choose your options.

Columns use first-seen key order across all rows. Null and missing fields become blank; nested objects and arrays become compact JSON in one cell. CSV stores no type information: spreadsheet software may reinterpret numbers or dates.

A FEW SIMPLE STEPS

How to use JSON to CSV

  1. Paste an array of objects, or a single JSON object for one row.
  2. Choose comma, semicolon or tab. Decide whether to prefix formula-like text and add a UTF-8 BOM to the download.
  3. Select Convert to CSV. Review row/column totals, the output and the table preview.
  4. Copy all output or download CSV/TSV. The preview shows only the first 30 rows and 10 columns; exports include every row and column.
PRIVATE BY DESIGN

Why use this tool?

Your JSON stays on your device. Conversion uses local scripts with no uploads, accounts, dependencies or input storage. A shared strict JSON checker prevents inconsistent syntax handling, while original number spellings stay intact instead of rounding through JavaScript Number values.

Tool inputs stay in your browser. Only your theme preference is saved on this device.

A few things worth knowing

What JSON shapes can I convert?

Use an array containing only objects, or one object for a single data row. Primitive arrays, mixed arrays and top-level primitives are rejected. Columns are the union of top-level property names in first-seen source order, including keys found in later rows. An empty array or records with no columns give an error. Duplicate keys anywhere in the input are rejected rather than choosing a value silently.

How are nested values, null and missing fields handled?

Nested objects and arrays become compact JSON text in one cell; they are not flattened or expanded into rows. Null, absent properties and empty strings produce blank cells, so those distinctions are lost in CSV. Booleans become true or false. Strings are JSON-decoded, while number tokens keep their exact spelling. CSV carries no data types; importing software may reinterpret large numbers, dates or empty cells.

How is CSV escaped?

Every field, including the header, is double-quoted; internal double quotes are doubled. Records use CRLF with a final record terminator, and embedded cell line breaks remain within quotes. The delimiter can be comma, semicolon or tab. Download uses UTF-8; an optional BOM affects downloads only, not the displayed output or Copy. Tab selection downloads a .tsv file; the others use .csv.

What does formula protection change?

When enabled, formula-like string cells and headers receive a leading apostrophe before CSV quoting. The heuristic detects ASCII or fullwidth equals, plus, minus or at-sign after leading whitespace/control characters, and text starting with TAB, CR or LF. This changes actual field text and is not a guarantee across spreadsheet programs or re-saving. Validated JSON number tokens are not prefixed, including negative numbers. For untrusted data, import columns explicitly as text. Turn protection off when exact string values are required for a trusted programmatic workflow.

What are the limits?

The shared JSON checker accepts up to 200,000 UTF-16 input units, 50,000 tokens and 100 container levels. Conversion accepts 5,000 data rows, 200 columns and 100,000 data cells. Output is limited to 2,000,000 UTF-16 units. Limits return an error without partial exports. Decoded strings or headers with unpaired surrogate units are rejected to avoid silent UTF-8 replacement.

Does the preview include everything, and is input stored?

Preview is limited to the first 30 data rows and 10 columns. Copy and download contain the complete result. Cells are rendered as plain text and never executed. Nothing is uploaded or saved in browser storage. Clear preserves options; Try an example restores defaults. Input and option edits clear the old output.