JSON to CSV
Paste a JSON array of objects, or open a .json file locally, and download CSV. Keys on the first object become the header line. A cell that contains the delimiter is quoted.
Runs in your browser. Nothing is uploaded.
How it works
- Step 1: Paste your inputPaste directly into the editor, drop a file onto it, or use "Open file" to pick one from your device. Nothing is sent anywhere when you do.
- Step 2: ConvertAdjust the options if you need to, then run it. Results appear beside your input so you can compare the two.
- Step 3: Copy or download the outputCopy the result to your clipboard in one click, or save it as a file. You can also keep editing and re-run as many times as you like.
About this tool
What JSON to CSV expects
This address starts in JSON-to-CSV. The input that works is an array of objects. Keys on the first object become the header line, so a later object that introduces a new key loses that field. Put every column on the first object, even when the value is an empty string, if you need the column to exist. A value that contains the delimiter is wrapped in quotes.
Nested objects do not become extra columns. Flatten them first, then come back. Opening a .json file uses the local file reader. The swap control will accept CSV if that is what you pasted, and the canonical page for that direction is CSV to JSON. Nothing here writes an Excel workbook or guesses a delimiter you did not choose.
Anything other than a non-empty array of objects is rejected as invalid JSON format, including one bare object. The number zero and the boolean false become empty cells, because a value that looks missing is replaced before it is written. Only a string that contains the chosen delimiter is wrapped in quotes, and a quote already inside that string is left untouched. The download is named converted.csv and stays plain text, so a spreadsheet formula is not calculated.
- Runs in your browser. All processing happens locally in this tab using JavaScript.
- No uploads. Your data is never sent to a server. There is no server to send it to.
- Works offline. Once the page has loaded you can disconnect and keep working.
- Unlimited & free. No usage caps, no paywall, no file size tiers.
Start with your own data. Open a file
What happens to your data
The same questions a security review would ask, answered plainly.
- Read via
- Typed or pasted into the page
- Held in
- Your browser tab's memory for as long as it is open
- Stored
- Nothing. No cookies, no database, no server-side copy
- Transmitted
- Nothing leaves your device
- Retained after you close the tab
- Nothing
- Works offline
- Yes, once the page has loaded
Why use this tool
What you get here that a server-side alternative cannot offer.
Your data never leaves the tab
There is no upload step and no server to receive one. The page loads once, then all work on your data happens in local JavaScript.
No caps or paywalls
No daily limits, no per-file ceilings imposed by a server tier, no watermarks, and no account. The practical limit is your own device's memory.
Frequently asked questions
Is my JSON uploaded to a server?
No. Everything runs locally in your browser using JavaScript. Your data is never uploaded to a server, and nothing is stored or logged.
What if later objects have extra keys?
The header is taken from the first object. A later key that the first object never had is dropped from the row. Put every column on the first object, even if the value is empty.
Why did a nested object become useless text?
CSV has no nesting. Flatten the document with the JSON flattener first, then come back and turn the flat array into rows.
How much data can I paste in?
There is no server-side cap. Very large inputs are limited only by your device's memory and will make the page feel slower, since the work happens on the main thread. In practice a few megabytes of text is comfortable.
Does it work offline?
Yes, once the page has loaded. The code that does the work is already in your browser at that point, so you can disconnect and keep using it. Reloading the page while offline needs the browser cache to still hold it.
Do I need to create an account?
No. There is no sign-up, no email, and no usage tracking tied to an identity. The tool works the first time you open it.