Convert Parquet to JSON — Free, Private, In-Browser
Your files never leave your browserParquet to JSON is the conversion you reach for when something expects records rather than a table: an API payload, a fixture file, a document store, or just a format a human can read without special tooling. This produces a single JSON array of objects, one per row.
JSON’s type system is thinner than Parquet’s, so a few things shift. Dates and timestamps become strings, since JSON has no date type. Large integers are emitted as JSON numbers — fine in most languages, but anything that parses JSON numbers as IEEE doubles (looking at you, JavaScript) will lose precision above 2^53, so very large IDs are safer as strings. The upside: nested STRUCT and LIST columns round-trip beautifully into nested JSON objects and arrays — this is one conversion where structure survives intact.
One caveat on size: a JSON array holds the whole result in memory and repeats every key on every record, so it gets large fast. If you’re streaming the output or appending to it, JSONL (one object per line) is usually the better target. As always, the conversion runs entirely in your browser — nothing is uploaded.
Drop a file or click to browse
Drop a Parquet file — processed locally, never uploaded
Frequently asked questions
- Is my file uploaded anywhere?
- No. The Parquet→JSON conversion runs entirely in your browser via DuckDB-WASM. Your file never leaves your device.
- How large a file can I convert?
- It's bounded by your browser's available memory rather than any server limit — files in the hundreds of MB are routine. DuckDB runs single-threaded here, so very large files just take a little longer.
- Do I need an account?
- No — it's free and requires no sign-up.
- Array or one-object-per-line?
- This page produces a single JSON array. For one object per line (NDJSON) — better for streaming and big files — use the Parquet to JSONL converter instead.
- Do nested columns survive?
- Yes — STRUCTs become nested objects and LISTs become arrays, so the shape is preserved unlike CSV/TSV.