cellsmith
No file yet - drop one, or open with ⌘O

CELLSMITH / CSV TOOLS

JSON to CSV Converter

Open a .json file and download its records as a CSV. Every value keeps the text it had in the JSON.

Files are kept for up to 30 minutes after your last activity. Unsaved edits cannot be recovered after a server restart.

The JSON must be one array of flat records. Numbers keep their exact text (1.0 stays 1.0), null becomes an empty field, and records with different keys share one header with empty fields for missing keys. This is a one-way conversion: the CSV is derived from the JSON, the JSON file is not kept, and a JSON round trip is not claimed. Files up to 32 MiB work in the web version.

How it works

  1. Open a UTF-8 .json file with the button above, or drop it into the workbench. The file must contain one array of flat records; the web version accepts files up to 32 MiB, the same limit as CSV files.
  2. The records appear as a table: the header is every key in the order first seen, each value keeps the text it had in the JSON, and null shows as an empty field. The file passport states that the CSV is derived from JSON.
  3. Choose Save & verify to download the derived CSV, named after your file. Your original .json file is not touched; you can also keep working: filter, run Doctor, or convert to Excel first.

What stays exactly the same

Numbers keep their exact JSON text: 1.0 stays 1.0 and 1e3 stays 1e3. Leading zeros survive only as string values ("001" stays 001); JSON numbers cannot have leading zeros, so 001 as a number makes the file invalid JSON and it is refused.

null becomes an empty field, a key missing from one record becomes an empty field in that row, and the header is the union of all keys in first-seen order. Values are written exactly as they appear in the JSON, and the cellsmith table shows them as text. CSV itself has no text type, so another spreadsheet may interpret a value that begins with =, +, - or @ as a formula, and a digit-only value as a number; booleans are written as true and false.

Nested objects and arrays are refused with the record number and key named, never flattened or guessed. A key repeated in one record is refused too.

The conversion is one-way: the CSV is derived from the JSON, the JSON file is not kept, and no JSON round trip is claimed. Saving downloads a new .csv; your original .json is never written back.

Limits

Files are uploaded to the cellsmith.app server and held in memory, not kept only in your browser. The web version accepts UTF-8 text files up to 32 MiB each. Files expire 30 minutes after the last activity; opening another file or restarting the server also clears the current document and unsaved work.

Questions about this tool

How do I convert a JSON file to CSV?

Open the .json file with the button above. It must contain one array of flat records. The table appears with the keys as the header; choose Save & verify to download the derived CSV, named after your file.

What happens to nested JSON?

It is refused, not flattened. The message names the record number and the key, for example: record 2, key "items": a nested array is not supported. Flatten the JSON first, then convert.

Do numbers keep their exact text?

Yes. 1.0 stays 1.0 and 1e3 stays 1e3, exactly as written in the JSON. Leading zeros survive only in string values: "001" stays 001, while 001 as a number is invalid JSON and the file is refused.

What does null become?

An empty field. A key that is missing from one record also becomes an empty field in that row.

What if the objects have different keys?

The header is the union of every key, in the order the keys first appear. Records missing a key get an empty field, so every row has the same number of columns.

Is my original JSON file changed?

No. The CSV is derived from the JSON and saving downloads a new .csv file. The original .json is never written back, and the JSON itself is not kept on the server after the conversion.

How big a JSON file can I convert, and is it uploaded?

Up to 32 MiB per file in the web version, the same limit as CSV files. In the web version the file is uploaded to the cellsmith.app server, held in memory and deleted after the retention period. The planned desktop app is meant to work on files on your own computer; it is not released yet.