/tools/json-to-csv

Streaming JSON to CSV Converter

Convert a root or nested JSON array of objects to RFC 4180 CSV with two bounded passes and direct file writing.

json-to-csv://local

JSON source

No source selected.

Conversion progress

Two passes
0%

No conversion has run.

Pass 1
Strict UTF-8 and JSON validation; locate the exact array; discover first-seen columns.
Pass 2
Re-scan records and stream quoted CSV bytes to the selected destination.
Ready. Paste small JSON or choose a file up to 4 GiB.

/stream

Convert a large JSON file to CSV without loading it into RAM

A selected File remains file-backed. The worker reads bounded chunks, validates the complete JSON document, discovers a stable header, and then re-reads the source while applying output backpressure. Memory use therefore depends on the chunk and at most one row's property ranges, not the total file size.

  1. Choose a JSON file or paste a small sample.
  2. Leave the pointer blank for a root array, or enter an exact pointer such as /data/items.
  3. Choose CSV delimiter, line ending and optional BOM.
  4. Select a destination and let both passes complete.

/mapping

Predictable JSON-to-CSV value rules

One object becomes one row

Top-level object properties become columns in first-seen order. Missing properties are empty, explicit null is null, booleans and numbers keep their JSON spelling, and strings are decoded and CSV-escaped.

Nested values stay intact

Nested objects and arrays become compact JSON inside one quoted field. The converter does not invent flattening rules or explode arrays into duplicate rows.

Every selected array member must be an object. Duplicate row keys and more than 10,000 distinct columns are rejected rather than silently discarded.

/limits

Browser support and practical limits

Direct multi-gigabyte writing requires a desktop browser with File System Access support. Other browsers use a Blob download fallback capped at 100 MiB for both source and output. The source limit is 4 GiB; the completed CSV can be larger when written directly.

Is any data uploaded?

No. The file, pointer, column names and resulting CSV never leave the browser. Analytics receives only a content-free activation after successful completion.

/faq

Large JSON to CSV questions

Are nested objects flattened?

No. A nested object or array remains compact JSON inside one quoted CSV field, avoiding invented column names or duplicate rows.

Why are two passes required?

The first pass discovers the complete stable header and validates every row. The second can then write each row once in that column order.