Json To Csv LogoJson To Csv

How Can I Convert a JSON File to a CSV File Online? (2026 Guide)

You have a .json file and you need a spreadsheet, and you do not want to install anything. Here is the online path — upload or paste, four small decisions, download — plus what to do when the CSV looks broken in Excel.

Updated: 2026-10-1211 min read

The 60-second path: file in, spreadsheet out

If you landed here from a search that read "how can I convert a JSON file to a CSV file online", you probably have a file sitting in your Downloads folder right now and a spreadsheet you need to fill. Here is the whole job, start to finish, with nothing installed:

One: open the converter in your browser. Two: click the upload button and pick your .json file — or open the file in a text editor, copy everything, and paste it into the input box. Three: press Convert. Four: download the CSV and open it in Excel or Google Sheets. That is the entire procedure. The conversion itself takes milliseconds; the minute is you clicking.

Everything after this section is about the four small decisions hidden inside step three — upload versus paste, flattening, the delimiter, the header row — plus the four things that can make a perfect CSV look broken in Excel. If your conversion works first try, you can stop reading here. If anything looks off, the fixes below are the ones that actually work, each verified against the real converter.

Decision 1: upload the file, or paste its contents?

An online JSON to CSV converter gives you two ways to feed it your data, and picking the right one avoids the most common first-timer frustration. The upload button on this site accepts .json and .txt files — click it, pick the file, done. Pasting means opening the JSON in a text editor, selecting all, copying, and dropping it into the converter's input box.

Upload when the file is large or when you have several files to convert: it is one click per file and there is no clipboard involved. Paste when you only have a fragment — a response you copied from a browser dev-tools panel, an API response you grabbed from documentation, a snippet someone sent you in chat. Both paths feed the same engine, so the CSV comes out identical either way.

One practical warning about pasting: browsers and chat apps sometimes mangle long pastes. If you paste several megabytes of JSON and the converter complains about invalid syntax, do not debug the data — just upload the file instead. Nine times out of ten the "error" was the clipboard, not your JSON.

Decision 2: flatten the nested data, or leave it as-is?

This is the decision that changes what your spreadsheet actually looks like, so it deserves a concrete example. We will use this orders.json file for the rest of the guide — two orders, nested customer objects, a list of items:

orders.json
[
  { "id": 1, "customer": { "name": "Ana", "city": "Madrid" }, "items": ["book", "pen"], "total": 19.99 },
  { "id": 2, "customer": { "name": "Ken", "city": "Osaka" }, "items": ["lamp"], "total": 42.5 }
]

With flattening ON — the default, and the right choice for most people — the converter turns nested objects into dot-notation columns and lists into single cells. We ran this exact file through the real engine to show you the byte-for-byte output:

Flattening on: the spreadsheet-friendly result

Here is what the engine produced with flattening on — this is the output you will actually download:

CSV output — flattening ON (verified against the real engine)
id,customer.name,customer.city,items,total
1,Ana,Madrid,book; pen,19.99
2,Ken,Osaka,lamp,42.5

Every level of nesting becomes a column you can sort and filter: customer.name, customer.city. A list of plain values becomes one cell with the values joined by "; ". This is the spreadsheet-friendly shape, and it is what you want when the goal is analysis — pivot tables, filters, charts.

Two details worth knowing because they surprise people: the joined list uses "; " (semicolon-space), so if you later pick a semicolon delimiter, that cell gets quoted to protect it — the engine handles it automatically. And an empty value simply becomes an empty cell, while an empty list becomes [].

Flattening off: the honest-but-ugly result

Same file, flattening off. Each top-level key keeps its own column, and the nested structures are stuffed in as quoted JSON text:

CSV output — flattening OFF (verified against the real engine)
id,customer,items,total
1,"{""name"":""Ana"",""city"":""Madrid""}","[""book"",""pen""]",19.99
2,"{""name"":""Ken"",""city"":""Osaka""}","[""lamp""]",42.5

That looks worse, and for analysis it is worse — but it is the honest representation, and it is what you want when you need to preserve the exact nested structure, for example before feeding rows back into a system that expects JSON-shaped fields.

Rule of thumb: leave flattening on unless you have a specific reason to turn it off. Most people asking how to convert a JSON file to a CSV file online want the spreadsheet-friendly version.

Decision 3: comma or semicolon? (the Excel locale trap)

The converter's delimiter dropdown offers comma, semicolon, tab, and pipe. For most readers the real choice is comma versus semicolon, and the correct answer depends on your Excel, not your data.

Here is the trap: in the US, UK, and much of Asia, Excel expects comma-separated values, so the default comma file opens perfectly. But in much of continental Europe and Latin America, Excel expects semicolons — because those locales use the comma as the decimal separator, so their CSV files are "really" SSV files. Open a comma-delimited CSV in a German Excel and everything lands in column A.

The fix is a one-click decision before you download, not a problem to solve afterward: if your Excel puts everything in one column, regenerate the CSV with a semicolon. We verified that path through the real engine — same orders file, semicolon delimiter, flattening on:

CSV output — semicolon delimiter (verified against the real engine)
id;customer.name;customer.city;items;total
1;Ana;Madrid;"book; pen";19.99
2;Ken;Osaka;lamp;42.5

Notice the quotes around "book; pen" — the engine quotes any cell containing the delimiter, so nothing breaks. Tab is the quiet third option: almost nothing conflicts with tabs, so pick tab when your data contains both commas and semicolons (street addresses plus European decimals in the same file). Pipe is there for the rare file that contains all three.

Decision 4: header row on or off?

The headers toggle is checked by default, and you should leave it checked in almost every case. The header row is what turns a grid of values into a usable spreadsheet — it is how you sort by customer.city instead of by "column C", and it is what every downstream tool expects.

Turn headers off in exactly one situation: when you are appending rows to an existing spreadsheet that already has its own header row. Pasting headerless rows under an existing header is the only common case where a second header row would corrupt the sheet. Everywhere else, keep the headers.

When the CSV looks wrong in Excel: the 4 fixes that actually work

A perfect CSV can still look broken the moment Excel opens it, because Excel guesses at things instead of asking. These are the four failures we see, in order of frequency, with the fix for each:

  • Garbled or accented characters (café becomes café). This is an encoding mismatch, not broken data. The converter outputs plain UTF-8 with no BOM, and Excel sometimes guesses the wrong encoding when you double-click the file. Fix: in Excel use Data > From Text/CSV, pick the file, and set File Origin to 65001 (UTF-8) explicitly. Google Sheets handles UTF-8 correctly on import, so this is mostly an Excel problem.
  • Everything in one column. Your Excel expects a different delimiter than the file uses — see Decision 3. Regenerate with a semicolon, or import via Data > From Text/CSV and tell Excel which delimiter the file uses.
  • Leading zeros vanish (007 becomes 7, ZIP codes lose their zero). Excel sees digits and converts the cell to a number. Fix: import via Data > From Text/CSV and set those columns to Text type during the import wizard — do this at import time, because the zeros are unrecoverable after Excel has already eaten them.
  • Dates reformat themselves (2026-10-12 becomes 10/12/2026, or worse, a serial number). Same root cause: Excel auto-detects date-like text. Fix: mark date columns as Text during the Data > From Text/CSV import, then format them as dates yourself once the data is safely inside the sheet.

Notice the pattern: three of the four fixes happen at import time, not in the converter. The converter's job is to produce a correct CSV; Excel's import wizard is where you tell Excel how to read it. Double-clicking a CSV is convenient and wrong — the 20 seconds the import wizard takes is the cheapest insurance in this whole guide.

Is it safe? Your JSON file never leaves your browser

The question behind "how can I convert a JSON file to a CSV file online" is often really "can I trust a random website with this file?" — especially when the file holds customer data, financial exports, or anything with names in it. The honest answer depends on the tool's architecture, not its promises.

This site's converter is client-side: the conversion runs in JavaScript inside your browser tab. Your file is read locally, converted locally, and downloaded locally — nothing is uploaded to any server, because there is no server step in the pipeline. You can verify this yourself in about 30 seconds: open the converter, disconnect your network (airplane mode works), and convert a file. The CSV still downloads. A tool that needed your data on its server could not do that.

That said, stay honest about the limits: client-side means the file does live in your browser's memory during conversion, on a machine you control. Do not convert files on a borrowed or public computer you do not trust, and if your data is regulated (health records, financial PII under a compliance regime), check your organization's policy before using any web tool — the architecture is safe, but your policy may still say no.

When the online path is the wrong answer

An online converter is the right tool for one-off conversions of small to medium files with nothing installed. It is the wrong tool in three situations, and saying so is part of an honest guide:

  • Huge files. A browser tab is comfortable up to a few megabytes and gets sluggish past tens of megabytes. For hundreds of megabytes, use jq or a short Python script locally — they stream the file instead of holding it all in memory.
  • Conversions you repeat daily. If you convert the same export every morning, a saved script or a jq one-liner turns a daily minute into a daily zero seconds. The online tool is for the irregular job; the script is for the routine.
  • Hand-picked, renamed, reordered columns. The converter gives you every key as a column, in the file's key order. If you need three specific columns renamed and reordered, explicit projection in jq or pandas beats clicking through a UI every time.

For the full comparison of all six approaches — online converter, Excel Power Query, Python/pandas, jq, VS Code, Google Sheets — with each one actually tested, see our tool comparison guide. For the fastest possible path regardless of method, see the under-a-minute guide.

Related guides

Frequently asked questions

How can I convert a JSON file to a CSV file online for free?

Open a free online JSON to CSV converter, upload your .json file (or paste its contents), leave flattening on, pick the delimiter your spreadsheet expects, and download the CSV. The whole thing takes under a minute and needs no account — this site's converter is free with no sign-up.

Do I need to install anything to convert a JSON file to CSV online?

No. An online converter runs in your browser — that is the entire point. Upload or paste your JSON, convert, download the CSV. Installing Python, jq, or Excel plugins only makes sense for huge files or daily-repeat conversions.

What is the difference between uploading a JSON file and pasting JSON text?

Nothing in the output — both feed the same engine. Upload is better for large files or converting several files in a row; pasting is better for fragments you copied from dev tools, API docs, or chat. If a huge paste throws a syntax error, upload the file instead — the clipboard probably mangled it.

Why does my converted CSV show everything in one column in Excel?

Your Excel expects a different delimiter than the file uses — most commonly, a European or Latin American Excel expecting semicolons opening a comma-delimited file. Regenerate the CSV with a semicolon delimiter, or import via Data > From Text/CSV and tell Excel which delimiter the file uses.

How do I convert a JSON file to CSV without losing nested data?

Leave the flattening option on. It turns nested objects into dot-notation columns (customer.name, customer.city) and lists of plain values into single cells joined with "; " — verified against the real converter. Turning flattening off stuffs nested structures into quoted cells as raw JSON text.

Is it safe to upload a JSON file with personal data to an online converter?

It depends on the tool's architecture. On this site the converter is client-side — the file never leaves your browser tab, which you can verify by converting with the network disconnected. Server-upload tools send your file to their infrastructure, so check which kind a tool is before pasting sensitive data.

Can I convert a JSON file to CSV on my phone?

Yes — the converter is a web page, so it works in a mobile browser. Upload the file from your phone's storage (or paste the JSON), convert, and download the CSV. For large files or precise delimiter work, a desktop browser is more comfortable, but the conversion itself works the same.

Have the file ready? Convert it now — nothing to install

Upload your .json file or paste its contents, pick your delimiter, and download the CSV. Client-side conversion: your file never leaves your browser. Free, no sign-up.

Open the JSON to CSV converter
All guides