Skip to content
Input
Text
Limit
1 MiB
Runtime
Browser

Convert a flat JSON record array to CSV

Create a spreadsheet-ready table from a non-empty array of flat records with deterministic headers and formula-safe text handling.

Local processingNo sign-upNo share URL

Convert JSON to CSV

Inputs are limited to 1 MiB and stay in this browser tab.

Paste or edit the source. Tool Swim does not upload or save it.

Delimited text

Nothing is placed in a URL, account, or remote log.

What this tool does

Strict, bounded, local processing

Headers follow the first appearance of each member name across the records. Missing values become empty cells; nested objects and arrays are rejected rather than flattened ambiguously.

Rows come from objects and columns come from member names

The input must be a non-empty top-level array whose elements are objects. Tool Swim discovers headers in first-seen order across all records, then writes one row per object. A member missing from a later record becomes an empty cell, while explicit null also becomes an empty cell in this focused export.

Strings containing a delimiter, quote, carriage return, or newline are enclosed in double quotes, and embedded quotes are doubled. Numbers and booleans use their JSON text representation. The output uses CRLF record endings for broad spreadsheet compatibility.

Nested data is rejected because flattening needs a policy

An object or array inside a cell can be flattened in several incompatible ways: dotted columns, repeated rows, joined strings, or a second table. Choosing one automatically can lose hierarchy, duplicate parent values, or create unstable columns. This tool stops and asks you to normalize that shape deliberately.

For a nested export, define the target table and relationships first. Transform the data in reviewed code, keep identifiers that allow tables to be joined, and add fixtures for empty collections, missing optional members, and multiple nested records.

Spreadsheet software can interpret cell prefixes as formulas

Values beginning with `=`, `+`, `-`, or `@` can be interpreted as formulas by spreadsheet applications. Tool Swim prefixes those cells with an apostrophe so common spreadsheet imports treat them as text. That defensive choice changes the visible cell text contract and is documented in the result.

CSV does not provide a universal type or security model. Review the file before distribution, protect personal data, and confirm the delimiter and encoding expected by the destination. The download is created locally and is not stored by Tool Swim.

Primary standards

Questions and answers

Related JSON tools

Related JSON guides