JSON File to CSV Converter
Drop a JSON file (an array of objects) and get back a flat CSV. Nested objects are JSON-encoded into a single cell.
Quick answer: Drop a JSON file (an array of objects) and get back a flat CSV. Nested objects are JSON-encoded into a single cell.
Last updated
Frequently asked questions
- What JSON shape does the converter expect?
- A top-level array of objects: `[{...}, {...}]`. Single objects, scalars, or other shapes return an error explaining what's needed.
- How are nested objects and arrays handled?
- They're JSON-stringified into a single cell so the CSV stays a flat rectangle. Downstream code can `JSON.parse` the cell to get the original structure back.
- What happens when objects have different keys?
- We collect the union of every object's keys (in first-seen order) as the header row. Objects missing a key produce an empty cell in that column.
- Will my JSON be uploaded?
- No. Conversion happens entirely in your browser; the JSON never touches our server.
- Can I pick a different output delimiter?
- Yes. Comma, semicolon, tab and pipe are all supported. Tab is downloaded with a `.tsv` extension.
- Are special characters escaped properly?
- Yes. Cells containing the delimiter, a quote or a newline are wrapped in `"…"` with embedded quotes doubled (RFC-4180), so re-importing into Excel or Sheets is lossless.
- Does it preserve key order?
- Yes — the first object's keys come first, and any additional keys from later objects are appended in the order they appear. JavaScript preserves insertion order for object keys, so this is deterministic.
- What's the largest JSON file I can convert?
- There's no fixed cap. Files with hundreds of thousands of objects work fine; the limit is your browser's memory budget.
- Will scalars or null values appear in the output?
- Null and undefined become empty cells. Numbers, booleans and strings are written as-is.
- Why is my output empty?
- Either the JSON parsed to an empty array (no objects to flatten), or the top-level value isn't an array — the error message will tell you which.